[JDBC] JDBC 프로그래밍 익숙하게 하기
[JDBC] JDBC 프로그래밍 익숙하게 하기
- JDBC 프로그래밍 방식은 매번 같기에 라인별로 그 의미를 한 번 더 정리해보고 순서를 암기해서 술술 사용하기 위해 정리한다.
- JDBC 프로그래밍 순서.
- JDBC 드라이버를 로딩한다.
- 데이터베이스에 연결한다.
- SQL 실행을 위한 Statement(또는 PreparedStatement) 객체를 생성한다.
- SQL을 실행한다.
- SQL 실행결과를 받아서 처리한다.
- Statement(또는 PreparedStatement)를 종료한다.
- 데이터베이스 연결을 종료한다.
<해석>
1. JDBC 드라이버를 로딩한다.
→ 우리는 JSP프로그래밍을 통해서 DB에 접속하고 싶다 그러기 위해서 먼저 JDBC 드라이버를 로딩해야 한다.
2. 데이터베이스에 연결한다.
→ JDBC 드라이버를 로드했다면 이제 커넥션 객체 를생성한다. 이를 통해 DB 사용 시 필요한 정보를 파라미터로 넘겨서 연결을 할 수 있다. 참고로 DirverManager클래스의 getConnecttion() 메서드를 이용하여 생성한다.
3. SQL 실행을 위한 Statement(또는 PreparedStatement) 객체를 생성한다.
→ 이제 데이터베이스가 연결되었습니다. SQL문을 실행하기 위하여 Statement 객체 또는 PreparedStatement 객체를 생성합니다. PreparedStatement 가 Statement 보다 유지보수 측면에서 유리하다. 왜냐하면PreparedStatement는sql문을미리 만들어주고 값을 입력하는 방식이기 때문이다.
또한 아래의 두 메서드는 Statement의 멤버 메서드인데, PreparedStatement는 Statement의 상속을 받았기에 모두 사용 가능하다.
- executeQuery(String sql) : sql의 select문을 실행 후 결과를 반환한다.
- executeUpdate(String sql) : 그 이외의 update, insert, Delete 등의 sql문을 실행한다.
4. SQL을 실행한다.
→executeQuery(), executeUpdate() 메서드를 사용하여 실행한다.
1).Statement 객체를 사용하고 리턴 결과가 있을 때
ResultSet rs = stmt.executeQuery(String sql)
2). Statement 객체를 사용하여 리턴 결과가 없을 때
stmt.executeUpdate(String sql)
3). PreparedStatement 객체를 사용하여 리턴 결과가 있을 때
ResultSet rs = pstmt.executeQuery();
4). PreparedStatement 객체를 사용하여 리턴 결과가 없을 때
pstmt.executeUpdate();
5. 모든 연결을 종료한다.
→지금까지 사용한 모든 연결들을 종료해주어야 메모리 부족과 같은 문제가 발생하여 시스템에 생기는 오류를 막을 수 있다. 그러므로 Connection, Statement , PreparedStatement, ResultSet은 반드시 종료 해주자. close() 메서드 이용.
if( rs!=null)rs.close();
if( pstmt!=null) pstmt.close();
if( con!=null) con.close();
if( stmt!=null) stmt.close();