728x90
IMemberDao 인터페이스 클래스
package kr.or.ddit.mvc.dao;
import java.util.List;
import java.util.Map;
import kr.or.ddit.mvc.vo.MemberVO;
/**
* 실제 DB와 연결해서 SQL문을 수행하여 결과를 Service에 전달하는 DAO의 interface
*
* 메서드 하나가 DB와 관련된 작업 1개를 수행하도록 작성한다.
*
* @author PC-21
*
*/
public interface IMemberDao {
/**
* MemberVO객체에 담겨진 자료를 DB에 insert하는 메서드
*
* @param memVo DB에 insert할 자료가 저장된 MemberVO객체
* @return 작업성공 : 1, 작업 실패 : 0
*/
public int insertMember(MemberVO memVo);
/**
* 회원ID를 매개변수로 받아서 해당 회원 정보를 삭제하는 메서드
*
* @param memId 삭제할 회원ID
* @return 작업 성공 : 1, 작업 실패 : 0
*/
public int deleteMember(String memId);
/**
*
* MemberVO객체에 저장된 자료를 이용하여 DB에 update하는 메서드
*
* @param memVo update할 회원 정보가 저장된 MemberVo객체
* @return 작업성공 : 1, 작업 실패 : 0
*/
public int updateMember(MemberVO memVo);
/**
* DB의 전체 회원 정보를 가져와서 List에 담아서 반환하는 메서드
*
* @return MemberVo객체가 저장된 List객체
*
*/
public List<MemberVO> getAllMember();
/**
* 회원 ID를 매개변수로 받아서 해당 회원ID의 개수를 반환하는 메서드
*
* @param memId 검색할 회원ID
* @return 검색된 회원ID의 갯수
*
*/
public int getMemberCount(String memId);
/**
* 원하는 항목만 수정할 수 있는 데이터를 Map으로 받아서 수정작업을 수행하는 메서드
* key값 정보 ==> 회원ID(memid),수정할 컬럼명(field), 수정할 데이터(data)
*
* @param paramMap 수정할 정보가 저장된 Map객체
* @return 작업성공 : 1, 작업실패 : 0
*/
int updateMember2(Map<String,String>paramMap);
}
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.util.ArrayList;
import java.util.List;
import java.util.Map;
import kr.or.ddit.mvc.vo.MemberVO;
import kr.or.ddit.utill.DBUtil3;
public class MemberDaoImpl implements IMemberDao {
//1번
private static MemberDaoImpl dao;
//2번
private MemberDaoImpl() {
}
//3번
public static MemberDaoImpl getInstance() {
if(dao==null) dao = new MemberDaoImpl();
return dao;
}
@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_pass, mem_name, mem_tel, mem_addr)"
+ "values(?,?,?,?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, memVo.getMem_id());
pstmt.setString(2, memVo.getMem_pass());
pstmt.setString(3, memVo.getMem_name());
pstmt.setString(4, memVo.getMem_tel());
pstmt.setString(5, memVo.getMem_addr());
cnt = pstmt.executeUpdate();
} catch (Exception e) {
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) {
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) {
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_pass = ?, mem_name=?,"
+"mem_tel= ?, mem_addr= ?"
+ " where mem_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, memVo.getMem_pass());
pstmt.setString(2, memVo.getMem_name());
pstmt.setString(3, memVo.getMem_tel());
pstmt.setString(4, memVo.getMem_addr());
pstmt.setString(5, memVo.getMem_id());
cnt = pstmt.executeUpdate();
} catch (SQLException e) {
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;
PreparedStatement pstmt = null;
ResultSet rs = null;
List<MemberVO> memList = null; //반환값이 저장될 변수
try {
conn = DBUtil3.getConnection();
String sql ="select * from mymember";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
memList = new ArrayList<>(); //List객체 생성
while(rs.next()) {
//한 레코드의 내용을 VO객체에 저장한다.
MemberVO memVo = new MemberVO();
memVo.setMem_id(rs.getString("mem_id"));
memVo.setMem_pass(rs.getString("mem_pass"));
memVo.setMem_name(rs.getString("mem_name"));
memVo.setMem_tel(rs.getString("mem_tel"));
memVo.setMem_addr(rs.getString("mem_addr"));
//데이터가 저장된 VO객체를 List에 추가한다
memList.add(memVo);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if(pstmt != null)try {pstmt.close();}catch(SQLException e) {}
if(conn != null)try {conn.close();}catch(SQLException e) {}
if(rs != null)try {rs.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 (Exception e) {
e.printStackTrace();
}finally {
if(pstmt != null) try {pstmt.close();}catch(SQLException e) {}
if(conn != null) try {conn.close();}catch(SQLException e) {}
}
return count;
}
@Override
public int updateMember2(Map<String, String> paramMap) {
Connection conn = null;
PreparedStatement pstmt = null;
int cnt = 0; //반환값이 저장될 변수
try {
conn = DBUtil3.getConnection();
// key값 정보 ==> 회원ID(memid),수정할 컬럼명(field), 수정할 데이터(data)
String sql ="update mymember set "+ paramMap.get("field") +" = ? where mem_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, paramMap.get("data"));
pstmt.setString(2, paramMap.get("memid"));
cnt = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if(pstmt != null) try {pstmt.close();}catch(SQLException e) {}
if(conn != null) try {conn.close();}catch(SQLException e) {}
}
return cnt;
}
}
'JAVA > (MVC패턴)JDBCTest' 카테고리의 다른 글
자바(JDBC) mvc패턴06.JDBC basic패키지 만들어서 test하기 (0) | 2023.07.08 |
---|---|
자바(mvc패턴) 싱글톤 객체 만들기 (0) | 2023.07.08 |
자바(JDBC) mvc패턴04.JDBC Service패키지 만들기 (0) | 2023.07.08 |
자바(JDBC) mvc패턴02. JDBC VO패키지 만들기 (0) | 2023.07.08 |
자바(JDBC) mvc패턴01. JDBC Utill패키지 만들기 (0) | 2023.07.08 |