본문 바로가기

Java/mybatis

마이바티스에서 동적 쿼리를 생성하기

사용되는 형식은 아래와 같다.
<if test="조건식" />
* 조건식이 참인 경우에 이 곳에 기술된 내용을 조건절에 추가.
</if>

test 속성 값으로 조건식이 기술되는데 OGNL 표현식도 가능하다. 

사용자들은 일반적으로 알려지고 자주 사용되는 OGNL 표현식 외에 보다 실험적인 OGNL 표현식을 사용하지 않는 것 같다. 예를 들어 test="value != null" 정도인 것 같다. 

하지만 눈을 조금만 돌리면 아래와 같은 표현식도 가능하다는 것을 알 수 있다.

<if test="value in {1,2,3,}">
* 파라미터 값이 1, 2, 3 인 경우 이 곳에 기술된 내용을 조건절에 추가.
</if>

또한 '<=' 연산자 대신에 아래와 같은 표현도 가능하다.

<if test="value lte 30">
* 파라미터 값이 30 이하인 경우 이 곳에 기술된 내용을 조건절에 추가.
</if>

몇 가지 내용을 정리하면 아래와 같다.
'<=' : lte
'>=' : gte
'==' : eq
'!=' : neq