IBatis Dynamic Query
From JCFWiKi
Copyright © 2008 Daewoo Information Systems Co., Ltd. |
|
iBatis에서 동적 쿼리를 작성하기 위한 prepend에 대한 내용입니다. |
|
목차 |
[편집] 바이너리 조건 요소
바이너리 조건 요소는 정적값 또는 다른 프로퍼티값을 위한 프로퍼티값과 비교한다. 만약 결과가 true라면 몸체부분의 SQL쿼리가 포함된다.
[편집] 바이너리 조건 속성
prepend Statement에 붙을 오버라이딩 가능한 SQL부분(옵션)
- 요소
- property : 비교되는 property(필수)
- compareProperty : 비교되는 다른 property (필수 또는 compareValue)
- compareValue : 비교되는 값(필수 또는 compareProperty)
- 가능 조건
- <isEqual> : 프로퍼티가 값 또는 다른 프로퍼티가 같은지 체크
- <isNotEqual> : 프로퍼티가 값 또는 다른 프로퍼티가 같지 않은지 체크
- <isGreaterThan> : 프로퍼티가 값 또는 다른 프로퍼티 보다 큰지 체크
- <isGreaterEqual> : 프로퍼티가 값 또는 다른 프로퍼티 보다 크거나 같은지 체크
- <isLessThan> : 프로퍼티가 값 또는 다른 프로퍼티 보다 작은지 체크
- <isLessEqual> : 프로퍼티가 값 또는 다른 프로퍼티 보다 작거나 같은지 체크
사용법 예제) <isLessEqual prepend="AND" property="age" compareValue="18"> ADOLESCENT = 'TRUE' </isLessEqual>
[편집] 단일 조건 요소
단일 조건 요소는 특수한 조건을 위해 프로퍼티의 상태를 체크한다.
- 요소
- prepend : statement에 붙을 오버라이딩 가능한 SQL부분(옵션)
- property : 체크하기 위한 프로퍼티(필수)
- 가능 조건
- <isPropertyAvailable> : 프로퍼티가 유효한지 체크
- <isNotPropertyAvailable> : 프로퍼티가 유효하지 않은지 체크
- <isNull> : 프로퍼티가 null인지 체크
- <isNotNull> : 프로퍼티가 null이 아닌지 체크
- <isEmpty> : Collection, 문자열 또는 String.valueOf() 프로퍼티가 null이거나 empty(“” or size() < 1)인지 체크
- <isNotEmpty> : Collection, 문자열 또는 String.valueOf() 프로퍼티가 null 이아니거나 empty(“” or size() < 1)가 아닌지 체크
사용법 예제) <isNotEmpty prepend="AND" property="firstName"> FIRST_NAME = #firstName# </isNotEmpty>
[편집] 다른 요소들
- 요소
- Parameter Present : 파라미터 객체가 존재하는지 체크
- Parameter Present Attributes : prepend - the statement에 붙을 오버라이딩 가능한 SQL부분
- 가능 조건
- <isParameterPresent> : 파라미터 객체가 존재(not null)하는지 체크
- <isNotParameterPresent> : 파라미터 객체가 존재하지(null) 않는지 체크
사용법 예제) <isNotParameterPresent prepend="AND"> EMPLOYEE_TYPE = 'DEFAULT' </isNotParameterPresent>
- Iterate : 이 태그는 Collection을 반복하거나 리스트내 각각을 위해 몸체 부분을 반복한다.
- prepend : the statement에 붙을 오버라이딩 가능한 SQL부분 (옵션)
- property : 반복되기 위한 java.util.List타입의 프로퍼티 (필수)
- open : 반복의 전체를 열기 위한 문자열, 괄호를 위해 유용하다. (옵션)
- close : 반복의 전체를 닫기 위한 문자열, 괄호를 위해 유용하다. (옵션)
- conjunction : 각각의 반복 사이에 적용되기 위한 문자열, AND 그리고 OR을 위해 유용하다. (옵션)
- 가능 조건
- <iterate> : java.util.List 타입의 프로퍼티 반복
사용법 예제) <iterate prepend="AND" property="userNameList" open="(" close=")" conjunction="OR"> username = #userNameList[]# </iterate>
|
