*이항연상 동적 요소
<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 : 파라미터의 값을 비교할 때 사용...
prepend : 이 값은 요소의 내용 가장 앞에 출력 됨. 그러나. 결과 내용이 공백인 경우, dynamic 첫 자식의 요소일 경우, removeFirstPrepend가 true이고 이 요소가 처음으로 내용을 만들었을 경우.
removeFirstPrepend : 처음으로 내용을 출력하는 자식 요소의 prepend값을 출력할지 여부를 결정한다.
compareProperty: property 속성에 의해 명명 된 프로터티와 비교할 파라미터 객체의 프로퍼티를 나타낸다.
compareValue : propery 속성에 명명된 프로퍼티와 비교할 정적인 문자값
*단항연산 요소
property : 필수요소. 파라미터의 변수명
prepend : 내용은 이항연산과 같음
removeFirstPrepend : 내용은 이항연산과 같음
*단항연산 요소
<isPropertyAvailable> : 프로퍼티가 파라미터에 있는지 검사. 빈즈에서는 프로퍼티 Map에서는 키를 찾음<isPropertyAvailable> : 프로퍼티가 파라미터에 없는지 검사. 빈즈에서는 프로퍼티 Map에서는 키를 찾음<isNull> : 프로퍼티가 null인지 검사. 빈즈에서는 프로퍼티 Map에서는 키를 찾음
<isNotNull> : 프로퍼티가 null이 아닌지 검사. 빈즈에서는 프로퍼티 Map에서는 키를 찾음
<isEmpty> : 프로퍼티가 null 또는 빈문자열인지 검사.
<isNotEmpty> : 프로퍼티가 null 또는 빈문자열이 아닌지 검사.
<select id="getUser" parameterClass="map" resultClass="BuyuserDto">
SELECT * FROM BUYUSER
<dynamic prepend="WHERE">
<isNotEmpty property="bcompid" prepend="and">
BCOMPID = #bcompid#
</isNotEmpty>
<isNotEmpty property="pass" prepend="and" >
PWD = #pass#
</isNotEmpty>
</dynamic>
</select>
<!--
dynamic은 내용물을 만들 때 무조건 prepend로 지정 된 값을 붙인다(여기서는 where). 이 값을 막는 방법은 없다고 한다.
dynamic을 사용하면 첫번째 prepend 기능을 자동으로 무조건 제거한다. 이 말은 분홍색으로 체크 된 부분이 dynamic의 첫prepend값을 자동으로 삭제해버린다는 것이다. where절에서 조건을 1가지 이상 비교하려면 and를 붙여야 하는데... 처음에는 and가 들어가지 않으므로 파라미터값이 있고 없고에 따라서 prepend="and"내용을 따로 처리해 줄 필요 없이... where절 처음에 오는 and를 삭제해 주기 때문에 편한 것 같다. 원래 이 기능을 해주는 것이 따로 있는데... 그것이 removeFirstPrepend이다. 써보진 않았지만 그런 것같다. ㅋ 위의 쿼리에서 분홍색 부분의 prepend="and" 부분을 삭제하면 오류가 난다. 왜? dynamic요소가 처음 나오는 prepend를 삭제 하기 때문에 분홍색 글씨의 prepend="and"를 빼면 녹색글씨의 prepend="and"가 첫번째 prepend요소가 되기 때문이다.
-->
출처: http://jhroom.tistory.com/147 [JH's Room]
'Spring&mybatis(ibatis)' 카테고리의 다른 글
mybatis 기호 비교 등등 (0) | 2018.10.26 |
---|---|
mybatis order 속성사용 (0) | 2018.10.26 |
a child container failed during start 에러 (0) | 2018.09.27 |
@RestController , @Controller 차이점입니다 (0) | 2018.03.20 |
Srping Hello 예제 (0) | 2015.03.30 |