[iBatis] Dynamic Query

장재욱·2022년 3월 28일
0

개념s

목록 보기
1/1
post-thumbnail

Dynamic Query란?

- parameter 값에 의해 쿼리를 동적으로 변환 해주는 기능이다.
- <dynamic> 태그를 추가 / 생략하여 사용하며 prepend, open, close등의 속성을 사용함
  * prepend : 값이 있는 경우 맨 앞에 나옴 ex) AND, OR, ETC...
  * open : 시작 값을 의미하며 prepend 다음에 붙음
  * end : 종료 값
  * ex) prepend ="WHERE" open="(" end =")"

다양한 연산들

  • 이항연산(비교연산)
* <isEQual> : 같은지 비교					ex) #property# = compareValue
* <isNotEqual> : 같지 않은지 비교 			ex) #property# <> compareValue
* <isGreaterThan> : 큰지 비교				ex) #property# >= compareValue
* <isGreaterEqual> : 크거나 같은지 비교		ex) #property# >= compareValue
* <isLessThan> : 작은지 비교				ex) #property# < compareValue
* <isLessEqual> : 작거나 같은지 비교		ex) #property# <= compareValue
  
속성
• prepend : 값이 있는 경우 맨 앞에 Append 된다
• property : 비교되는 프로퍼티 (필수)
• compareProperty : 비교되는 다른 프로퍼티 (필수 또는 compareValue)
• compareValue : 비교되는 값 (필수 또는 compareProperty)
• open : 시작부분에 넣을 문자. prepend 다음에 붙음.
• close : 끝에 넣을 문자
  • 단항연산(Null 체크)
* <isNull> : 프로퍼티 null 체크
* <isNotNull> : 프로퍼티 null 아닌지 체크
* <isEmpty> : Collection, 문자열 또는 String.ValueOf() 프로퍼티가
			  null이거나 empty("" or size() < 1)인지 체크
* <isNotEmpty> : Collection, 문자열 또는 String.valueOf() 프로퍼티가 
				 null이 아니거나 empty("" or size() < 1)가 아닌지 체크

속성
• prepend : 값이 있는 경우 맨 앞에 Append 된다. (추가적인 SQL 문장) (옵션)
• property : 비교되는 프로퍼티 (필수)
• open : 시작부분에 넣을 문자. prepend 다음에 붙음.
• close : 끝에 넣을 문자
  • <iterate>
* Collection을 반복한다.
* 주로 IN 연산을 하기 위해 사용한다.

속성
• prepend : 값이 있는 경우 맨 앞에 Append 된다. (추가적인 SQL 문장) (옵션)
• property : 반복되기 위한 java.util.List타입의 프라퍼티(필수)
• open : 반복의 전체를 열기 위한 문자열, 괄호를 위해 유용하다. (옵션)
• close : 반복의 전체를 닫기 위한 문자열, 괄호를 위해 유용하다. (옵션)
• conjunction : 각각의 반복 사이에 적용되기 위한 문자열, IN 연산시 콤마(,) (옵션)
profile
아기개발자

0개의 댓글