Daily Notebook

[Mybatis] Java Function 불러오기

by 배부른코딩로그

개발자들은 사용하기 편라한 유틸성 함수들을 util 패키지에 클래스들로 미리 선언해둔 경우가 대다수입니다.

 

이런 함수들은  마이바티스에서 사용할 수 있습니다!!!

 

예를 들면 객체가 비었는지 확인하는 isEmpty()를 활용해봅니다.

 

/**
 * Object type 변수가 비어있는지 체크
 * 
 * @param obj 
 * @return Boolean : true / false
 */
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;
}
 
/**
 * Object type 변수가 비어있지 않은지 체크
 * 
 * @param obj
 * @return Boolean : true / false
*/
public static Boolean isNotEmpty(Object obj) {
    return !isEmpty(obj);
}

 

위의 함수를 마이바티스에서 사용하는 방법은 다음과 같습니다!

 

<if test="@framework.util.CommonUtil@isEmpty(str)">

>> @패키지.클래스@함수명(파라미터)

 

오히려 번거로운 것 같지만, OGNL(Object Graph Navigation Language) Issue에서 유용하게 사용할 수 있습니다.

 

OGNL이란 아래의 링크에서 쬐끔 자세히 파악할 수 있습니다.

 

 

2020/03/27 - [코딩 재료 다듬기/Spring] - :: [Mybatis] OGNL(Object Graph Navigation Language) Issue

 

:: [Mybatis] OGNL(Object Graph Navigation Language) Issue

마이바티스를 사용하다보면, OGNL(Object Graph Navigation Language) 문제를 겪게 될 수 있다. 뭐... 운이 좋다면, 겪어보지 못했을 수 있고!! 다음 예제를 살펴 보자. codify.tistory.com

 

 

 

반응형

블로그의 정보

배부른코딩로그

배부른코딩로그

활동하기