WEB/Server
[SpringBoot+JDBC] sql like 쿼리문 사용하기
kite707
2022. 1. 25. 18:14
프로젝트 도중 검색 기능을 구현하기 위해 like 쿼리를 사용해야 했다. 그런데 like문의 쿼리문 문법은 아래와 같다.
--A를 포함하는 문자 찾기--
SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '%A%'
그런데 Springboot 내에서는 쿼리문을 아래와 같이 큰 따옴표("")로 묶는다.
//MovieDao 파일
public Writer getWriter(int userIdx) {
//sql문
String getUserQuery = "select user_idx,nickname,photo from user where user_idx=?;";
int param=userIdx;
return this.jdbcTemplate.queryForObject(getUserQuery,
(rs, rowNum) -> new Writer(
rs.getInt("user_idx"),
rs.getString("nickname"),
rs.getString("photo")),
param);
}
그래서 그냥 like문을 사용하면 에러가 난다. SpringBoot에서 sql문 내 ?는 작은 따옴표로 감싸져 치환되므로 검색하고자 하는 내용을 %%로 감싸서 ?에 넣어주면 된다. 아래는 사용 예시이다.
public List<GetMovieInfo> getMovieIdx_Search(String keyword,String sort){
String query="SELECT movie_idx FROM movie where movie_title like ? ";
//검색하고자 하는 키워드를 %%로 감싸준다.
String param="%"+keyword+"%";
return this.jdbcTemplate.query(query,
(rs, rowNum) -> new GetMovieInfo(
rs.getInt("movie_idx")),param);
}
위와 같이 SpringBoot에서 like문을 사용할 수 있다.