mybatis와 ibatis에서는 동적태그

Posted by RAY.D
2016. 5. 31. 15:44 Database
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

출처 : http://hellogk.tistory.com/100




우선 mybatis와 ibatis에서는 동적태그를 기본적으로 지원을 합니다.

즉, 프로시저로 짜여져 있는 로직을 동적태그를 사용하여 쿼리로 변경할 수 있습니다.


장점이 있을수도 있지만 자칫 잘못 사용하면 큰 문제를 일으킬수 있다는 단점이있을수 있다는...

양날의 칼날과 같다는것만 알아두시면 되겠습니다.


ibatis 비교문 지원 태그


isNull : "널일경우"

isNotNull : "널이아닐경우"

isEmpty : "공백일경우"

isNotEmpty : "공백이아닐경우"

isGreaterTan : ">"

isGreaterEqual : ">="

isLessThan : "<"

isLessEqual : "<="

isEqual : "=="

isNotEqual : "!="

mybatis 비교문 지원 태그


if  : 단일조건문

choose when otherwise : 다중조건문



위와같이 각 mybatis(ibatis) 별 동적태그를 지원합니다.

ibatis에 비해 mybatis의 비교문태그가 간단해졌습니다.


ibatis에서 지원되는 태그들 if문과 choose문만을 이용하여 비교가 가능해 진것이죠.


일반 자바코드와 ibatis/mybatis 별로 비교문 예를 들어보도록 하겠습니다.



Null 비교문

1
2
3
if(stringProperty == null) {
    // code here
}


1
2
3
4
5
6
7
8
<!--ibatis -->
<isNull property="stringProperty">
    조건문
</isNull>
<!--mybatis-->
<if test="stringProperty == null">
    조건문
</if>


NOT NULL 비교문

1
2
3
if(stringProperty != null) {
    // code here
}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!--ibatis -->
<isNotNull property="stringProperty">
    조건문
</isNotNull>
<!--mybatis(1)-->
<if test="stringProperty != null">
    조건문
</if>
<!--mybatis(2)-->
<choose>
    <when test="stringProperty == null">
        NULL일경우 조건문
    </when>
    <otherwise>
        NULL이 아닐경우 조건문
    </otherwise>
</choose>


공백일경우 비교문

1
2
3
if(stringProperty.equals("")) {
    //code here
}


1
2
3
4
5
6
7
8
<!--ibatis-->
<isEmpty property="stringProperty">
    조건문
</isEmpty>
<!--mybatis-->
<if test="stringProperty == ''">
    조건문
</if>