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이다.
