블로그 이미지
Max.

calendar

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Notice

2008.08.26 22:02 이전글(~2009)

Statement 쿼리에 매핑할 파라메터는 보통 '?'를 인자로 하는데 이는 직관적이지 못해서 의미있는 매핑을 위해 이름을 사용할수 있게한 JdbcTemplate 래퍼 클래스이다.

public int countOfActorsByFirstName(String firstName) {
    String sql = "select count(0) from T_ACTOR where first_name = :first_name";
    SqlParameterSource namedParameters = new MapSqlParameterSource("first_name", firstName);
    return namedParameterJdbcTemplate.queryForInt(sql, namedParameters);
}

예제에서 처럼 쿼리문 변수(sql)에 간단히 ':변수명' 형식으로 정의한후 MapSqlParameterSource로 해당 변수를 매핑하여 쿼리를 실행한다. 여기서 SqlParameterSource  대신 Map을 이용할수도 있다.

Map namedParameters = Collections.singletonMap("first_name", firstName);

또한 Map 대신에 Bean 객체를 이용할수도 있다.

public int countOfActorsByFirstName(String firstName) {
    String sql = "select count(0) from T_ACTOR where first_name = :first_name";
    Actor exampleActor = new Actor(firstName);
    SqlParameterSource namedParameters = new BeanPropertySqlParameterSource(exampleActor);
    return this.namedParameterJdbcTemplate.queryForInt(sql, namedParameters);
}

기억해 둘것은 NamedParameterJdbcTemplate 클래스는 JdbcTemplate클래스를 완전이 감싸고 있기 때문에 NamedParameterJdbcTemplate에서 언제든지 JdbcTemplate의 기능을 사용할수 있다.

신고

'이전글(~2009)' 카테고리의 다른 글

[SpringJDBC] SimpleJdbcTemplate  (0) 2008.08.26
[SpringJDBC] Batch  (0) 2008.08.26
[SpringJDBC] NamedParameterJdbcTemplate  (0) 2008.08.26
[SpringJDBC] JdbcTemplate  (0) 2008.08.26
[SpringJDBC] 개요  (0) 2008.08.26
가고싶은 일주일간의 독서여행  (2) 2008.08.26
posted by Max.

티스토리 툴바