Spring Framework

[Spring] NamedParameterJdbcTemplate LIKE 검색하는 방법

도로락 2020. 4. 14. 10:03
NamedParameterJdbcTemplate LIKE 검색하는 방법
저의 경우 외부 시스템 DB와 연동시 NamedParameterJdbcTemplate을 자주 사용하곤 합니다. (내부 시스템은 기본적으로 JPA 사용)

NamedParameterJdbcTemplate의 경우에는 파라미터를 Named Parameter라 불리우는 방식으로 사용하는데 :pram과 같은 형식으로 콜론을 붙여 사용합니다. 

그런데 LIKE 검색의 경우 아래와 같이 사용하는 분들(제 이야기)이 계십니다.
String sql = "SELECT * FROM tbl_attend WHERE LIKE ATTEND_CD LIKE %:attendCode%";
cs

그러나 LIKE문 아래와 같은 형태로 사용해야 합니다.
public List<Attend> getAttendList(String attendCode) {
    String sql = "SELECT * FROM tbl_attend WHERE LIKE ATTEND_CD LIKE :attendCode";
 
    Map<String, Object> params = new HashMap<String, Object>();
    params.put("attendCode""%" + attendCode + "%");
 
    return jdbcTemplate.query(sql, params);
}
cs

급하게 쓰느라 두서 없는 포스팅 끝.