CRUD게시판

CRUD 게시판 만들기_2(로그인 -> DAO)

ash silver 2022. 11. 22. 15:20

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코드는 이러하다