CRUD 게시판 만들기_2(로그인 -> DAO)
service와 dao에 생성하지 않았던 게 있어서 생성한다,,ㅎㅎ
로그인을 하려면 그 멤버가 골라지는 selectMember가 필요하다.
1. MemberDAO에 selectMember추가!
MemberVO selectMember(String id);
( *반환 타입을 Member로 줄 것이기 때문에 void가 아닌 MemberVO로 설정)
2. MemberDAOImpl 파일에는 빨간 줄이 뜨고
2022.11.18 - [CRUD게시판] - CRUD 게시판 만들기_3(회원 관리 -> service, DAO,)
CRUD 게시판 만들기_3(회원 관리 -> service, DAO,)
회원 관리에서 서비스를 줄 것은 회원가입, 회원 정보 수정, 탈퇴하기이다. 1. MemberService에 만들 메소드 추가 회원가입 -> joinMember() 회원 정보 수정 -> editMember() 탈퇴하기 -> delMember() * MemberVO import
ash-silver.tistory.com
위의 글을 참고하여 selectMember를 오버라이드 해준다.
3. 위의 1,2와 똑같은 방법으로 MemberService와 MemberServiceImpl에 selectMember를 추가해준다.
2022.11.21 - [CRUD게시판] - CRUD 게시판 만들기_5(회원가입 -> DAO)
CRUD 게시판 만들기_5(회원가입 -> DAO)
1. MemberDAOImpl에 MemberDao implements하기 전과 같이 빨간줄이 뜨면 add unimplemented methods 한다. 2. db를 연결해준다. 윗줄에 private DBConnect db; public MemberDAOImpl() { db=DBConnect.getInstance(); } 이것을 추가해주면 db
ash-silver.tistory.com
전에 joinMember를 작성했던 것을 참고하여 지금부터! MemberDAOImpl을 작성한다.
1. 위에 joinMember를 작성했던 것처럼 conn과 pstmt를 null로 초기화해준다.
Connection conn= null;
PreparedStatement pstmt=null;
2. ResultSet
ResultSet은 반환하는 객체를 돌려준다.
예를 들어
ResultSet으로 sql을 실행했을 때 sql문이 [select*from member]라면
member테이블을 반환한다.
( *이해가 잘 가지 않는다면 뒤에 하면서 전체적인 코드의 흐름을 보고 이해하도록 하자!)
우선은
ResultSet rs = null;
를 추가해주고 import를 해준다.
3. 실행할 sql문을 선언해준다.
String sql ="select * from member where id=?";
4. DB연결 및 pstmt에 sql 대입,? 에 원하는 값 넣기 및 rs로 sql문 실행
conn=db.getConnection();
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, id);
rs=pstmt.executeQuery();
5. 리턴하기
if(rs.next()) {
return new MemberVO(rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5));
}
6. conn, pstmt close
conn.close();
pstmt.close();
여기까지 하면 DAO가 완성되었다.
하지만 오류가 발생할 수 있어서 try catch를 지정해주었다.
public MemberVO selectMember(String id) {
Connection conn= null;
PreparedStatement pstmt=null;
ResultSet rs = null;
String sql ="select * from member where id=?";
try {
conn=db.getConnection();
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, id);
rs=pstmt.executeQuery();
if(rs.next()) {
return new MemberVO(rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5));
}
}
catch(SQLException e) {
e.printStackTrace();
}
catch(Exception e) {
e.printStackTrace();
}
finally {
try {
conn.close();
pstmt.close();
}
catch(SQLException e) {
e.printStackTrace();
}
catch(Exception e) {
e.printStackTrace();
}
}
return null;
}
selectMember코드는 이러하다