본문 바로가기
DATABASE

마이바티스(mybatis) notEmpty,empty 사용하기

by 개남 2022. 12. 1.

ibatis에는 있지만 mybtis에는 null체크할 수 있는 isEmpty,isNotEmty가 없습니다. 그래서 직접 구현한뒤 util로 만들어서 많이 사용을 합니다.

구현

package devnam.tistory.com;
 
import java.lang.reflect.Array;
import java.util.List;
import java.util.Map;
 
public class MybatisUtil {
    public static boolean empty(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 notEmpty(Object obj){
        return !empty(obj);
    }
}

사용

<select id="testSQL" parameterType="map" resultType="map">
    SELECT aa,bb from TEST
    WHERE
        1=1
        <if test="@devnam.tistory.com.MybatisUtil@notEmpty(aa)">
            AND aa = #{aa}
        </if>
</select>

prameter의 aa값이 null이나 공백이 아니고 값이 있을경우 where 절에서 aa='값'이 적용되게 됩니다.

댓글