> Hello World !!!

     

@syaku

iBATIS 동적 WHERE 절 다루기 위한 요소 설명

written by Seok Kyun. Choi. 최석균

내용 출처 :  iBATIS 인 액션 도서

 

<dynamic> 요소 속성

prepend
속성값을 요소 내용의 가장 앞에 붙이기 위해 사용한다. prepend의 값은 요소 내용이 공백일 때는 앞에 붙이지 않는 다.
open

open 값은 요소 내용에 접두사로 붙이기 위해 사용한다. open 값은 요소 내용이 공백일 때는 출력되지 않는다. open 값은 prepend 속성 값보다는 뒤에 붙는다. 예를 들면 prepend="WHEN" 이고 open="(" 라면 조합된 결과는 "WHEN (" 가 될 것이다.
close close 값은 요소 내용의 뒤에 덧붙이기 위해 사용한다. 이 값은 요소 내용이 공백이라면 출력되지 않는다.

 

 

이항연산 요소

이항연산 요소 속성

property (필수)
compareValue나 compareProperty 와 비교하는 데 사용할 파라미터 프로퍼티
perpend


이 값은 보통 요소 내용의 가장 앞에 출력된다. 다음의 경우에는 prepend  의 값이 출력되지 않고 무시된다: (a) 요소의 결과 내용이 공백인 경우, (b) 요소가 처음으로 내용을 만들어 냈고 removeFirstPrepend 속성이 true 인 요소에 내포되어 있는 경우, (c) <dynamic> 요소 다음에 공백이 아닌 내용을 처음으로 출력하고 prepend 에 값이 지정돼 있는 요소일 경우.
open

open 값은 요소 내용에 접두사로 붙이기 위해 사용한다. open 값은 요소의 결과내용이 공백일 때는 접두사로 붙지 않는 다. open 값은 prepend 속성 값보다는 뒤에 붙는 다. 예를 들어 prepend="OR" 이고 open="(라면 조합된 결가는 "OR (" 가 될것이다.
close
close 값은 요소 결과 내용의 뒤에 덧붙이는데 사용한다. 이 값은 요소 내용이 공백이라면 덧붙여지지 않을 것이다.
removeFirstPrenpend
이 값은 처음으로 내용을 출력하는 자식 요소의 prepend 속성 값을 출력하지 여부를 결정한다.
compareProperty
(compareValue 가 명시되지 않았다면 필수)
compareProperty 는 property 속성에 의해 명명된 프로퍼티와 비교할 파라미터 객체의 프로퍼티를 명시한다.


compareValue(compareProperty가 명시되지 않았다면 필수) property 속성에 의해 명명된 프로퍼티와 비교할 정적인 비교값


이항연산 동적 요소

 <isEqual>  property 속성값이 compareProperty 값이나 compareValue 값과 같은지 검사
 <isNotEqual>  property 속성값이 compareProperty 값이나 compareValue 값과 같지 않은지 검사
 <isGreaterThan>  property 속성값이 compareProperty 값이나 compareValue 값보다 큰지 검사
 <isGreaterEqual>  property 속성값이 compareProperty 값이나 compareValue 값보다 큰거나 같은지 검사
 <isLessThan>  property 속성값이 compareProperty 값이나 compareValue 값보다 작은지 검사
 <isLessEqual>  property 속성값이 compareProperty 값이나 compareValue 값보다 작거나 같은지 검사

 

단항연산 요소

단항연산 요소 속성

property (필수)
상태 비교를 위해 사용되는 파라미터의 변수명
perpend


이 값은 보통 요소 내용의 가장 앞에 출력된다. 다음의 경우에는 prepend  의 값이 출력되지 않고 무시된다: (a) 요소의 결과 내용이 공백인 경우, (b) 요소가 처음으로 내용을 만들어 냈고 removeFirstPrepend 속성이 true 인 요소에 내포되어 있는 경우, (c) <dynamic> 요소 다음에 공백이 아닌 내용을 처음으로 출력하고 prepend 에 값이 지정돼 있는 요소일 경우.
open

open 값은 요소 내용에 접두사로 붙이기 위해 사용한다. open 값은 요소의 결과내용이 공백일 때는 접두사로 붙지 않는 다. open 값은 prepend 속성 값보다는 뒤에 붙는 다. 예를 들어 prepend="OR" 이고 open="(라면 조합된 결가는 "OR (" 가 될것이다.
close
close 값은 요소 결과 내용의 뒤에 덧붙이는데 사용한다. 이 값은 요소 내용이 공백이라면 덧붙여지지 않을 것이다.
removeFirstPrenpend 이 값은 처음으로 내용을 출력하는 자식 요소의 prepend 속성 값을 출력하지 여부를 결정한다.


단항연산 요소

 <isPropertyAvailable>  명시된 프로퍼티가 파라미터에 존재하는 지 검사. 빈즈에서는 프로퍼티를 찾고 Map에서는 키를 찾는 다.
 <isNotPropertyAvailable>  명시된 프로퍼티가 파라미터에 존재하지 않는 지 검사. 빈즈에서는 프로퍼티를 찾고 Map에서는 키를 찾는 다.
 <isNull>  명시된 프로퍼티가 null 인지 검사. 빈즈에서는 프로퍼티를 찾고 Map 에서는 key를 찾는다. 키가 존재하지 않으면 true 를 반환한다.
 <isNotNull>

 명시도니 프로퍼티가 null이 아닌 다른 값인지를 검사. 빈즈에서는 프로퍼티를 찾고 Map에서는 키를 찾는다. 키가 존재하지 않는다면 false 를 반환한다.
 <isEmpty>  명시된 프로퍼티가 null이거나 빈 문자열(""), 빈 컬렉션이나 빈 String.  valueOf() 인지를 검사.
 <isNotEmpty>  명시된 프로퍼티가 null이 아니거나 빈 문자열(""), 빈 컬렉션, 빈 String, valueOf() 가 아닌지 검사.

 

파라미터 요소

파라미터 요소 속성

perpend


이 값은 보통 요소 내용의 가장 앞에 출력된다. 다음의 경우에는 prepend  의 값이 출력되지 않고 무시된다: (a) 요소의 결과 내용이 공백인 경우, (b) 요소가 처음으로 내용을 만들어 냈고 removeFirstPrepend 속성이 true 인 요소에 내포되어 있는 경우, (c) <dynamic> 요소 다음에 공백이 아닌 내용을 처음으로 출력하고 prepend 에 값이 지정돼 있는 요소일 경우.
open

open 값은 요소 내용에 접두사로 붙이기 위해 사용한다. open 값은 요소의 결과내용이 공백일 때는 접두사로 붙지 않는 다. open 값은 prepend 속성 값보다는 뒤에 붙는 다. 예를 들어 prepend="OR" 이고 open="(라면 조합된 결가는 "OR (" 가 될것이다.
close close 값은 요소 결과 내용의 뒤에 덧붙이는데 사용한다. 이 값은 요소 내용이 공백이라면 덧붙여지지 않을 것이다.
removeFirstPrenpend 이 값은 처음으로 내용을 출력하는 자식 요소의 prepend 속성 값을 출력하지 여부를 결정한다.


파라미터 요소

 <isParameterPresent>  파라미터 객체가 존재하는 지 평가
 <isNotParamterPresent>  파라미터가 존재하지 않는지 평가


<iterate> 요소

<iterate> 요소 속성

property (필수) 리스트(컬렉션 혹은 배열)을 포함하고 있는 파라미터의 프로퍼티
perpend


이 값은 보통 요소 내용의 가장 앞에 출력된다. 다음의 경우에는 prepend  의 값이 출력되지 않고 무시된다: (a) 요소의 결과 내용이 공백인 경우, (b) 요소가 처음으로 내용을 만들어 냈고 removeFirstPrepend 속성이 true 인 요소에 내포되어 있는 경우, (c) <dynamic> 요소 다음에 공백이 아닌 내용을 처음으로 출력하고 prepend 에 값이 지정돼 있는 요소일 경우.
open

open 값은 요소 내용에 접두사로 붙이기 위해 사용한다. open 값은 요소의 결과내용이 공백일 때는 접두사로 붙지 않는 다. open 값은 prepend 속성 값보다는 뒤에 붙는 다. 예를 들어 prepend="OR" 이고 open="(라면 조합된 결가는 "OR (" 가 될것이다.
close close 값은 요소 결과 내용의 뒤에 덧붙이는데 사용한다. 이 값은 요소 내용이 공백이라면 덧붙여지지 않을 것이다.
removeFirstPrenpend 이 값은 처음으로 내용을 출력하는 자식 요소의 prepend 속성 값을 출력하지 여부를 결정한다.
conjunction  이 속성의 값은 값 모록의 사이 사이에 출력디어 SQL 문장을 구성한다.


<iterate> 요소 예제

<select id="getProducts" parameterClass="Product" resultClass="Product">
  SELECT * FROM TEST
    <dynamic prepend="WHERE productType IN ">
      <iterate property="productTypes" open="(" close=")" conjunction=",">
        productType=#productTypes[]#
      </iterate>
    </dynamic>
</select>

http://syaku.tistory.com