Mybatis like 조건시 문자열 처리
특정 문자열을 포함한 값을 가져오는 쿼리는
select * from where title like '%대상문자열%'
과 같이 쿼리를 작성 및 사용하는데,
19:16:37,814 INFO [stdout] (default task-3) ### SQL: SELECT COUNT(*) FROM banword WHERE ban_word like '%?%'
19:16:37,814 INFO [stdout] (default task-3) ### Cause: java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0). 19:16:37,814 INFO [stdout] (default task-3) ; SQL []; Parameter index out of range (1 > number of parameters, which is 0).; nested exception is java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0)., result_cd=0} | RESULT = fail | REMOTEADDR = 127.0.0.1 | PORT = 58841 | TIME = 350 ms
|
해결 :
[MySQL]
title like CONCAT('%',#{key},'%')
[Oracle]
title like '%' || #{key} || '%'
[MSSQL]
title like '%' + #{key} + '%'
'back > Mybatis,Ibatis' 카테고리의 다른 글
[mybatis] xml에서 java method 사용 (0) | 2020.08.24 |
---|---|
[Mybatis] 동적쿼리 (if test) 문자열처리 (4) | 2020.03.27 |
[Ibatis] dtd 경로 문제 (1) | 2019.12.30 |
[Mybatis] $과 # 차이 (0) | 2019.12.05 |