JDBC는 데이터베이스에 접속할 수 있도록 도와주는 자바 API 이다.
JdbcTemplate을 사용하면 이러한 데이터베이스 연동 코드를 좀 더 간결하고 쉽게 작성할 수 있다.
JDBC의 주요 제공 기능은 다음과 같다.
queryForObject
queryForObject는 단일 객체 조회 메소드로 두 개의 매개변수를 가지며 첫번째 매개변수는 쿼리문, 두번째 매개변수는 매핑 클래스 타입이다.
int rowCount = jdbcTemplate.queryForObject("select count(*) from customers", Integer.class);
세 개의 매개변수가 들어갈 수도 있는데, 이때 세번째 매개변수는 쿼리문에 바인딩할 파라미터를 전달한다.
String lastName =
jdbcTemplate.queryForObject("select last_name from customers where id = ?", String.class, id);
두번째 매개변수에 RowMapper을 넣어 데이터를 조회할 수 있다.
Customer customer = jdbcTemplate.queryForObject(
"select id, first_name, last_name from customers where id = ?",
(resultSet, rowNum) -> {
Customer customer = new Customer(
resultSet.getLong("id"),
resultSet.getString("first_name"),
resultSet.getString("last_name")
);
return customer;
}, id);
query
List<Customer> customers = jdbcTemplate.query(
"select id, first_name, last_name from customers",
(resultSet, rowNum) -> {
Customer customer = new Customer(
resultSet.getLong("id"),
resultSet.getString("first_name"),
resultSet.getString("last_name")
);
return customer;
});Update
jdbcTemplate.update("insert into customers (first_name, last_name) values (?, ?)",
customer.getFirstName(), customer.getLastName());
jdbcTemplate.update("delete from customers where id = ?", Long.valueOf(id));
KeyHolder