티스토리 뷰

MyBatis] 동적 쿼리 생성시 삽질 주의


MyBatis로 동적 쿼리 생성시 주의 해야 할 점. 
MyBatis 문법은 RDBMS 별로 쿼리가 조금 씩 달라지며, 
자신이 사용하는 디비에 맞지 않게 사용하면 하루종일 삽질하고 자신의 있는 모습을 볼 수 있을거다. 

다 같은 구문을 사용할 줄 알았는데. 이거 때문에 몇시간을 날려 먹었는지.. 


LIKE 문 


# SQL 에서 LIKE 문 은 아래와 같이 사용된다.


SELECT * FROM TABLE_NAME

WHERE COLUMN_NAME LIKE PATTERN 



SELECT FROM SAMPLE

WHERE TAG LIKE 'Sa%' 


OR WHERE TAG LIKE '%am' 

OR WHERE TAG LIKE '%am%'  



# Mybatis에서는 DBMS 종류 별로 차이가 있다.


# MySql


SELECT FROM TABLE_NAME

WHERE COLUMN_NAME LIKE CONCAT(‘%’, #{searchKeyword}, ‘%’)


# ORACLE


SELECT FROM TABLE_NAME

WHERE COLUMN_NAME LIKE '%'||#searchKeyword#||'%' 



# Ms-Sql


SELECT FROM TABLE_NAME

WHERE COLUMN_NAME LIKE '%' + #searchKeyword# + '%'


이 처럼 미묘하게 다르니깐, 꼭 확인후 사용 하자.  





추가 


# # 대신 $ 를 붙여서 SQL 에서 쓰던식으로 써도 된다고는 하는데 해보지는 않았다. 


SELECT FROM TABLE_NAME

WHERE COLUMN_NAME LIKE '%${searchKeyword}%' 



출처: http://dongram.tistory.com/12 [Dongram 개발]

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
글 보관함