728x90
반응형

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 이라는 것을 넣어 준 것이다.

 

 

출처 : http://netholic.tistory.com/99

 

 

 

 

 

 

이거때문에 꽤 애 먹었다 ㅡㅡ.....

728x90
반응형

'SQL > IBATIS' 카테고리의 다른 글

IBatis 시작하기 2  (0) 2014.02.12
? and ? 와같은 ibatis 파라미터 두개로 처리하기  (0) 2014.02.12
Ibatis 트렌젝션 사용시 유의점..  (0) 2014.02.12
DynamicQuery 사용법  (0) 2014.02.12
ibatis like 사용법  (0) 2014.02.12
ibatis dynamic query  (0) 2014.02.12
ibatis Transaction  (0) 2014.02.12
ibatis mysql rownum  (0) 2014.02.12
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,