마이바티스

마아바티스에서 널 체크-자바클래스 이용

봄산 2017. 5. 28. 21:23

마이바티스에서는 자바 클래스를 이용해서 간단히 널 체크를 할 수 있다. 이 방법을 이용하면 널체크 쁜만 아니라 다양한 기능을 사용할 수

있을 것 같다.



1단계 널체크를 할 수 있는 자바 클래스를 만든다.


package stove99.tistory.com;

 

import java.lang.reflect.Array;

import java.util.List;

import java.util.Map;

 

public class MyComparator {

    public static boolean isEmpty(Object obj){

        if( obj instanceof String ) return obj==null || "".equals(obj.toString().trim());

        else if( obj instanceof List ) return obj==null || ((List)obj).isEmpty();

        else if( obj instanceof Map ) return obj==null || ((Map)obj).isEmpty();

        else if( obj instanceof Object[] ) return obj==null || Array.getLength(obj)==0;

        else return obj==null;

    }

     

    public static boolean isNotEmpty(String s){

        return !isEmpty(s);

    }

}



출처: http://stove99.tistory.com/73 [스토브 훌로구]


2단계 마이비티스에 적용


<select id="testSQL" parameterType="map" resultType="hashmap">
    SELECT * FROM TB_TEST
    WHERE
        1=1
        <!-- @패키지.클래스명@호출할메소드(파라메터) -->
        <if test="@stove99.tistory.com.MyComparator@isEmpty(keyword)">
            AND KEYWORD = #{keyword}
        </if>
</select>



출처: http://stove99.tistory.com/73 [스토브 훌로구]