hi jaeneee

CRUD 게시판 만들기_5(회원가입 -> DAO) 본문

CRUD게시판

CRUD 게시판 만들기_5(회원가입 -> DAO)

ash silver 2022. 11. 21. 17:17

1. MemberDAOImpl에 MemberDao implements하기

전과 같이 빨간줄이 뜨면 add unimplemented methods 한다.

 

2. db를 연결해준다.

윗줄에

	private DBConnect db;
	
	public MemberDAOImpl() {
		db=DBConnect.getInstance();
	}

이것을 추가해주면 db가 연결된다.

(*톰캣 9.0을 설치했다.)

 

 

*****지금부터 복잡해진다******

 

3. joinMember를 작성해준다.(지금은 회원가입만 구현할 예정이기 때문)

 

Connection conn= null;
PreparedStatement pstmt=null;

Connection conn -> 드라이브 로딩이라고 하는데 느낌만 알고 넘어간다..

PreparedStatement -> sql문을 전송하는 것

 

String sql="insert into member values(?, ?, ?, ?, ?)";

sql문에 넣어줄 문자열을 sql로 선언 (물음표는 뒤에서 설명)

 

conn = db.getConnection();
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, m.getId());
pstmt.setString(2, m.getPassword());
pstmt.setString(3, m.getName());
pstmt.setString(4, m.getPhoneNumber());
pstmt.setString(5, m.getEmail());
pstmt.executeUpdate();

pstmt가 sql문을 전송해주는 것이니 sql문에 ?부분에 원하는 값을 넣어야한다.

그래서 첫 번째 물음표에 매개변수의 m에서 Id를 가져온다.

(MemberVO에서 getter, setter를 한 이유!)

 

2022.11.18 - [CRUD게시판] - CRUD 게시판 만들기_2(DB/VO 만들기)

 

CRUD 게시판 만들기_2(DB/VO 만들기)

먼저 사용자가 회원가입하고 로그인한 다음에 글을 쓰고 봐야하기 때문에 회원의 DB먼저 만들어준다. 회원의 정보는 id, password, name, phoneNumber, email을 가지고 온다. 1. oracle db에 회원 정보를 나타

ash-silver.tistory.com

 

 

위의 과정에서 오류가 발생할 수 있으니

try except finally 문 안에 위의 코드를 넣어준다.

try {
    conn = db.getConnection();
    pstmt=conn.prepareStatement(sql);
    pstmt.setString(1, m.getId());
    pstmt.setString(2, m.getPassword());
    pstmt.setString(3, m.getName());
    pstmt.setString(4, m.getPhoneNumber());
    pstmt.setString(5, m.getEmail());
    pstmt.executeUpdate();
}
catch(SQLException e) {
    e.printStackTrace();
}
catch(Exception e) {
    e.printStackTrace();
}
finally {
    try {
        pstmt.close();
        conn.close();
    }
    catch(SQLException e) {
        e.printStackTrace();
    }
    catch(Exception e) {
        e.printStackTrace();
    }
}

sqlexception을 먼저 넣어주는 이유는 sql오류를 먼저 잡은 후, 나머지 오류를 잡기 위해서이다.

finally는 pstmt를 닫고 conn을 닫아야하기 때문에 넣어줬다.

 

Comments