ibatis 동적 쿼리 예
동적으로 where (Name = '정수연' or Id = 'gong') and Tel = 'tel' 쿼리를 만들기 위한 iBatis Sqlmap 구문을 간단히 소개합니다.
<select id="member_search" parameterClass="Map">
SELECT *
FROM member
<dynamic prepend="WHERE">
<isNotNull prepend="AND" removeFirstPrepend="true" open="(" close=")" >
<isNotEmpty prepend="OR" property="name">
Name = #name#
</isNotEmpty>
<isNotEmpty prepend="OR" property="id">
Id = #id#
</isNotEmpty>
</isNotNull>
<isNotEmpty prepend="AND" property="tel">
Tel = #tel#
</isNotEmpty>
</dynamic>
</select>
removeFirstPrepend="true" -> 이태그 밑의 처음 들어오는 조건은 prepend 를 붙이지 않겠으며, isNotNull 테그 안에 하나라도 조건이 있으면 처음과 끝에 '(', ')' 를 붙이겠다는 뜻이다.
그리하여
where (Name = '정수연' or Id = 'gong') and Tel = 'tel'
를 만든다.