11.2.1. JdbcTemplate
- query() :: select 문 사용
위와 같이 다양한 query 메소드들을 제공하고 있습니다.
예제 코드들)
= this.jdbcTemplate.queryForInt("select count(0) from t_actors where first_name = ?", new Object[]{"Joe"});
.queryForObject("select surname from t_actor where id = ?", new Object[]{new Long(1212)}, String.class);
"select first_name, surname from t_actor where id = ?",
new Object[]{new Long(1212)},
new RowMapper() {
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
Actor actor = new Actor();
actor.setFirstName(rs.getString("first_name"));
actor.setSurname(rs.getString("surname"));
return actor;
}
});
메소드에 들어가는 인자로 메소드를 구분할 수 있습니다.
(1) 문자열 하나만 들어가는 메소드는 그냥 쿼리문을 날리고 있습니다.
(2) 문자열과 객체 배열을 받는 메소드는 ? 에 매칭되는 인자를 배열로 넘깁니다. 좀 더 유연한 쿼리문을 작성할 때 사용할 수 있겠습니다.
(3) 클래스 타입을 넘기는 메소드는 쿼리의 결과가 해당 객체의 타입을 알려줍니다.
(4) RowMapper 콜백을 넘기는 메소드는 resultSet의 각 요소를 객체에 매핑하는 역할을 합니다.
- update() :: insert, update, delete 문 사용
사용법은 execute()랑 비슷합니다.
this.jdbcTemplate.update("update t_actor set weapon = ? where id = ?", new Object[] {"Banjo", new Long(5276)});
this.jdbcTemplate.update("delete from orders"); // :)