iBatis 동적쿼리
이항연산
<isEqual> | property가 compareProperty or compareValue와 같은지 검사 |
<isNotEqual> | property가 compareProperty or compareValue와 같지 않은지 검사 |
<isGreaterThan> | property가 compareProperty 값 또는 compareValue의 값보다 큰지 검사 |
<isGreaterEqual> | property가 compareProperty 값 또는 compareValue의 값보다 크거나 같은지 검사 |
<isLessThan> | property가 compareProperty 값 또는 compareValue의 값보다 작은지 검사 |
<isLessEqual> | property가 compareProperty 값 또는 compareValue의 값보다 작거나 같은지 검사 |
단항연산
<isPropertyAvailable> | property가 parameter에 있는지 검사. Beans에서는 property, Map에서는 Key를 찾는다 |
<isPropertyAvailable> | property가 parameter에 없는지 검사. Beans에서는 property, Map에서는 Key를 찾는다 |
<isNull> | property가 null인지 검사. Beans에서는 property, Map에서는 Key를 찾는다 |
<isNotNull> | property가 null이 아닌지 검사. Beans에서는 property, Map에서는 Key를 찾음 |
<isEmpty> | property가 null or 공백인지 검사. |
<isNotEmpty> | property가 null or 공백이 아닌지 검사. |
Element
property | parameter의 값을 비교할 때 사용 |
prepend | 요소의 내용 가장 앞에 출력 |
removeFirstPrepend | 처음 내용을 출력하는 하위 요소의 prepend값의 출력여부 |
compareProperty | property 속성에 의해 정의 된 property와 비교할 parameter 객체의 property. |
compareValue | propery 속성에 명명된 property와 비교할 정적인 문자값 |
Example
<select id="getUserList" resultClass="userVO">
SELECT
ID
, NAME
, ADDRESS
FROM USER_INFO
<dynamic prepend="WHERE">
<isNotEmpty property="search_id" prepend="AND">
USER_ID LIKE '%' + #search_user_id# + '%'
</isNotEmpty>
<isNotEmpty property="search_name" prepend="AND">
NAME LIKE '%' + #search_name# + '%'
</isNotEmpty>
</dynamic>
</select>
처음 조건절이 들어가려면 WHERE절이 필요하다. 그럴경우
dynamic을 사용하면 첫번째의 prepend기능을 자동으로 제거한다.
(isNotEmpty의 search_id가 있을경우 prepend의 AND를 제거)
'Programming > DB' 카테고리의 다른 글
[DB] iBatis selectKey (0) | 2015.05.13 |
---|---|
[DB] MS-SQL INSERT SELECT, UPDATE SELECT 문 (0) | 2015.04.24 |
[DB] MSSQL 날짜 계산 (0) | 2015.04.09 |
[DB] iBatis resultMap null 처리 (0) | 2015.03.26 |
[DB] iBatis(MyBatis) Map, List 형식으로 받기 (0) | 2015.01.20 |