1. LIKE 검색
보통 MySQL에서 like 검색을 쓰는 경우, 다음과 같다.
SELECT * FROM 테이블 명 WHERE 테이블명.name LIKE "%검색할문구%"
이를 iBatis 안에서 쓸려면concat으로 조합해 주어야 잘 작동한다.
SELECT * FROM 테이블 명 WHERE 테이블명.name LIKE CONCAT('%',#검색할문구#,'%')
2. Dynamic SQL
command로 값을 받아올 때 그 값이 있을 수도 있고 없을 수도 있는데 그것을 dynamic 쿼리를 통해 한번에 처리할 수 있어 효과적이다.
SELECT * FROM 테이블 명
WHERE 1 = 1
<dynamic>
<isNotEmpty prepend="AND" property="변수명">
테이블명.name LIKE CONCAT('%',#검색할문구#,'%')
</isNotEmpty>
<dynamic>
AND 다른 조건들 추가...
위 예에서1=1을 먼저 추가해 준 이유는 dynamic 쿼리에서 에러가 있었을 때 여기에 prepend로 WHERE를 걸었다면 그 문구가 아예 실행이 안되고 다음 AND 다른 조건들로 넘어가게 된다. 그래서 mysql 문법 상 WHERE 없이 AND가 등장해서 문법에러가 나게 되므로 이를 방지하기 위해 WHERE를 조건을 먼저 주려고 1=1이라는 것을 넣어 준 것이다.
728x90
'■ Data Skill ■ > MyBatis' 카테고리의 다른 글
[MyBatis] MyBatis 설정, 간단한 예제, 스프링 Bean 등록 (0) | 2023.02.25 |
---|---|
[iBatis] iBatis- LIKE 조건, IN 조건 만들기 (0) | 2023.02.25 |
[iBatis] iBatis 소스 생성 툴 ibator의 간단한 사용법 (0) | 2023.02.25 |
댓글