본문 바로가기
IT/Java

[Spring] NamedParameterJdbcTemplate

by 성준하이 2023. 2. 26.
반응형

이번에 소개할 JdbcTemplate이란,

 

이전 버전에서는 우리가 데이터를 넣을 부분에 ?를 이용하여 처리를 했다.

이러한 방식은 인자 위치에 대한 순서가 강제되는데 이러한 방식은 개발자의 불편함과 가독성을 떨어뜨릴수가 있다.

예제 문법
String sql = "update member set name=?, price=?, age=? where id=?"; template.update(sql, name, price, age, itemId);

변수가 많아졌다면 하나하나 순서까지 비교해야하는 불편함이 있다.

 

그래서 나온것이 NamedParameterJdbcTemplate이다.

NamedParameterJdbcTemplate는 ?대신 :변수명 을 이용하여 처리함으로써 순서에 강제를 받지 않는다.

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

값은 ParameterSource를 이용하여 입력을 해준다.

 

그리고 또 직접 데이터를 전달할때는 하나하나 값을 지정하지 않아도 객체를 통으로 전달해도 인식이 가능하다.

 

namedParameters 이라는 변수에 SqlParameterSource 로 담아서 sql 쿼리를 날리게 된다.

 

반응형

'IT > Java' 카테고리의 다른 글

groovy란?  (21) 2023.03.01
@Qualifier 어노테이션 사용법  (10) 2023.02.27
익명 클래스(anonymous class)란?  (12) 2023.02.25
Thread란? (process비교)  (12) 2023.02.21
@Transactional 사용시 주의 사항1 (checked Exception)  (8) 2023.02.20

댓글