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='값'이 적용되게 됩니다.
'DATABASE' 카테고리의 다른 글
DBeaver 설치 및 PostgreSQL 연결하기(Windows) (0) | 2022.12.06 |
---|---|
PostgreSQL 15.1 설치 (Windows) (0) | 2022.12.05 |
마이바티스(mybatis) 자주 사용되는 쿼리,컬럼 재사용하기 (0) | 2022.12.01 |
댓글