IMemberDao / MemberDaoImpl : SQL문을 DB서버에 보내 실행 결과를 얻어오는 역할
DAO의 interface
package kr.or.ddit.mvc.dao;
import java.util.List;
import kr.or.ddit.mvc.vo.MemberVO;
/**
*
* 실제 DB서버에 연결해서 SQL문을 수행하여 결과를 작성해서
* Service에 전달하는 DAO의 interface
*
* @author PC-06
*
*/
public interface IMemberDao {
/**
* MemberVO에 담겨진 자료를 DB에 insert하는 메서드
*
* @param memvo DB에 insert할 자료가 저장된 MemberVO객체
* @return insert 작업성공 : 1이상의 정수, insert 작업 실패 : 0
*/
public int insertMember(MemberVO memvo);
/**
* 회원ID를 인수값으로 받아서 해당 회원 정보를 삭제하는 메서드
* @param memId 삭제할 회원ID
* @return 삭제성공 : 1, 삭제실패 : 0
*/
public int deleteMember(String memId);
/**
* MemberVO 자료를 이용하여 회원 정보를 Update하는 메서드
* @param memvo update할 회원 정보가 저장된 MemberVO객체
* @return 수정성공 : 1, 수정실패 : 0
*/
public int updateMember(MemberVO memId);
/**
* DB의 회원 테이블의 전체 레코드를 가져와서
* List에 담아서 변환하는 메서드
* @return MemberVO객체를 담고 있는 List
*/
public List<MemberVO> getAllMember();
/**
* 회원ID를 인수값으로 받아서 해당 회원테이블의 개수를 반환하는 메서드
* @param memId 검색할 회원ID
* @return 검색된 회원ID 개수
*/
public int getMemberCount(String memId);
}
MemberDaoImpl 클래스
package kr.or.ddit.mvc.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import kr.or.ddit.mvc.vo.MemberVO;
import kr.or.ddit.util.DBUtil3;
public class MemberDaoImpl implements IMemberDao{
@Override
public int insertMember(MemberVO memvo) {
Connection conn = null;
PreparedStatement pstmt = null;
int cnt = 0; //반환값을 저장할 변수
try {
conn = DBUtil3.getConnection();
String sql = "insert into mymember "
+ "(mem_id, mem_name, mem_pass, mem_tel, mem_addr) "
+ "values(?, ?, ?, ?, ?) ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, memvo.getMem_id());
pstmt.setString(2, memvo.getMem_name());
pstmt.setString(3, memvo.getMem_pass());
pstmt.setString(4, memvo.getMem_tel());
pstmt.setString(5, memvo.getMem_addr());
cnt = pstmt.executeUpdate();
} catch (SQLException e) {
cnt=0;
e.printStackTrace();
} finally {
if(pstmt!=null) try{ pstmt.close(); }catch(SQLException e){}
if(conn!=null) try{ conn.close(); }catch(SQLException e){}
}
return cnt;
}
@Override
public int deleteMember(String memId) {//id를 받아서 왔다고 생각해야됨
Connection conn = null;
PreparedStatement pstmt = null;
int cnt = 0; //반환값을 저장할 변수
try {
conn = DBUtil3.getConnection();
String sql = "delete from mymember where mem_id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, memId);
cnt = pstmt.executeUpdate();
} catch (SQLException e) {
cnt = 0;
e.printStackTrace();
}finally{
if(pstmt!=null) try{ pstmt.close(); }catch(SQLException e){}
if(conn!=null) try{ conn.close(); }catch(SQLException e){}
}
return cnt;
}
@Override
public int updateMember(MemberVO memvo) {
Connection conn = null;
PreparedStatement pstmt = null;
int cnt = 0;//반환값 변수
try {
conn = DBUtil3.getConnection();
String sql = "update mymember "
+ " set mem_name = ?, mem_pass = ?, mem_tel = ?, mem_addr = ? "
+ " where mem_id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, memvo.getMem_name());
pstmt.setString(2, memvo.getMem_pass());
pstmt.setString(3, memvo.getMem_tel());
pstmt.setString(4, memvo.getMem_addr());
pstmt.setString(5, memvo.getMem_id());
cnt = pstmt.executeUpdate();
} catch (SQLException e) {
cnt = 0;
e.printStackTrace();
}finally{
if(pstmt!=null) try{ pstmt.close(); }catch(SQLException e){}
if(conn!=null) try{ conn.close(); }catch(SQLException e){}
}
return cnt;
}
@Override
public List<MemberVO> getAllMember() {
Connection conn = null;
Statement stmt = null;//매개변수가 없는 상황이라 이걸쓸수 있음
ResultSet rs = null;
List<MemberVO> memList = new ArrayList<>();
//반환값이 저장될 변수 선언
try {
conn = DBUtil3.getConnection();
String sql = "select * from mymember";
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
while(rs.next()){
// 반복처리 부분에서는 한 레코드의 데이터를 VO에 담고
// 데이터가 저장된 VO를 List에 추가하는 작업을 진행한다.
//1개의 레코드 값들을 VO에 저장하기
MemberVO memVo = new MemberVO(); //VO객체 생성
//한 레코드의 각 컬럼값들을 VO에 저장한다.(rs에 값을 가져와 memVO에 저장하는것)
memVo.setMem_id(rs.getString("mem_id"));
memVo.setMem_name(rs.getString("mem_name"));
memVo.setMem_pass(rs.getString("mem_pass"));
memVo.setMem_tel(rs.getString("mem_tel"));
memVo.setMem_addr(rs.getString("mem_addr"));
memList.add(memVo); //VO객체를 List에 추가한다
}
} catch (SQLException e) {
memList = null;
e.printStackTrace();
}finally{
if(rs!=null) try{ rs.close(); }catch(SQLException e){}
if(stmt!=null) try{ stmt.close(); }catch(SQLException e){}
if(conn!=null) try{ conn.close(); }catch(SQLException e){}
}
return memList;
}
@Override
public int getMemberCount(String memId) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
int count = 0; //반환값 저장 변수
try {
conn = DBUtil3.getConnection();
String sql = "select count(*) cnt from mymember "
+" where mem_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, memId);
rs = pstmt.executeQuery();
if(rs.next()){
count = rs.getInt("cnt");
}
} catch (SQLException e) {
count = 0;
e.printStackTrace();
}finally{
if(rs!=null) try{ rs.close(); }catch(SQLException e){}
if(pstmt!=null) try{ pstmt.close(); }catch(SQLException e){}
if(conn!=null) try{ conn.close(); }catch(SQLException e){}
}
return count;
}
}
Author And Source
이 문제에 관하여(IMemberDao / MemberDaoImpl : SQL문을 DB서버에 보내 실행 결과를 얻어오는 역할), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@susan9905/IMemberDao-MemberDaoImpl-SQL문을-DB서버에-보내-실행-결과를-얻어오는-역할저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)