DB에 접근할 수 있도록
Java에서 제공하는 API
이다.
자바로 작성된 클래스
와 인터페이스
로 구성되어 있다.java.sql
나 javax.sql
에 포함되어 있다.
- JDBC driver 로딩
- Connection 맺기
- SQL 실행
- 자원 반환
Class.forName("com.mysql.jdbc.Driver"); // mysql 드라이버 로딩
Connection conn = null;
conn = DriverManager.getConnect(URL, USERNAME, PASSWORD);
DriverManager
는 이름 그대로 데이터베이스 벤더들이 JDBC API를 구현한 드라이버를 관리
한다. DriverManager.gerConnection() 메서드
는 인자로 들어오는 값에 따라서 특정 데이터베이스 벤더가 구현한 Connection 타입의 객체를 반환
한다. Connection 객체 생성은 데이터베이스와 연결이 확립되었음을 의미한다.
- 쿼리 준비
Statement stmt = conn.createStatement();
- 쿼리 실행(쓰기 작업의 경우 - insert, update, delete)
rs = stmt.executeQuery(SQL_QUERY_STRING);
- 쿼리 실행(읽기 작업의 경우 - select)
ResultSet rs = psmt.executeQuery();
- SQL문이 select문이었다면 ResultSet을 이용한 처리
while(rs.next()) { String result1 = ResultSet.getString(1); // 컬럼 인덱스 String result2 = ResultSet.getString("NAME"); // 컬럼명 }
이렇게 추출한 값들은 보통 DTO 객체로 변환하여 사용한다.
5. 자원 반환rs.close(); // ResultSet를 닫는다. stmt.close(); // Statement를 닫는다. conn.close(); // Connection를 닫는다.
JDBC Template은 Spring JDBC 접근 방법 중 하나로, 내부적으로 Plain JDBC API를 사용하지만 위와 같은 문제점들을 제거한 형태의 Spring에서 제공하는 class이다.