myBatis 동적쿼리에서 문자열 비교하기
mybatis 2012. 2. 6. 17:42
myBatis 로 개발하면서 그동안 직접쿼리를 만들일이 없어서( 디비쪽 작업하시는 분이 Stored Procedure 를 맹글어 줘서 그걸 myBatis 로 호출했었음 )
myBatis 동적쿼리를 쓸일이 없었는데
최근에 혼자 개발하는 후로젝트를 하나 할일이 있어서 직접 쿼리를 맨들어야만 했었다.
그러다 보니 그동안 별 관심없던 myBatis 동적쿼리를 써서 개발해야만 해서 문득 써 보았는데 삽질이 시작되었다.
myBatis 는 iBatis 에서 쓰던 <isEmpty/> <isEquals/> <isNotEquals/> 요딴 태그들 대신
간단명료하게 <if test="조건"/> 요걸로 바꼈다.
오홍 좋은데 하면서 개발을 하다
문자열을 비교해서 처리할 부분이 생겨서 내는 당연히 <if test="removed=='N'" > 요렇게 하면 될줄 알고 했는데 아무리 해도 안됐다.
<if test="removed==N" > 이런것도 해보고 오만걸 다써봤는데 계속 삽질만 됐다.
구글로 검색을 해도 키워드를 후진 키워드를 넣었나 검색도 드럭게 안됐다. ... -_-
겨우 해결방법을 찾았는데.. 음 이런걸 검색하는 능력이 후지진 않았는데 이상하게 검색이 잘 안됐다.
결론적으로 죠걸 해결할려면 요렇게 하면 된다.
보니까 죠기 test 에서 파라메터로 넘어온 프로퍼티 객체의 메소드를 직접 호출할수 있는것 같다!!!!!
test 안에서 쓰는 메소드니깐 return 이 boolean 타입이여야 하긋지???
파라메터로 null 이 넘어올수도 있으니깬 익셉션 나는걸 방지하기 위해서 일단 null 인지 비교하고 다음으로 넘어온 프로퍼티가 스트링 객체니까
대소문자 안가리고 비교하라고 equalsIgnoreCase 메소드를 호출하도록 했다. 물론 equals() 메소드를 호출해도 상관은 없다.
myBatis 동적쿼리를 쓸일이 없었는데
최근에 혼자 개발하는 후로젝트를 하나 할일이 있어서 직접 쿼리를 맨들어야만 했었다.
그러다 보니 그동안 별 관심없던 myBatis 동적쿼리를 써서 개발해야만 해서 문득 써 보았는데 삽질이 시작되었다.
myBatis 는 iBatis 에서 쓰던 <isEmpty/> <isEquals/> <isNotEquals/> 요딴 태그들 대신
간단명료하게 <if test="조건"/> 요걸로 바꼈다.
오홍 좋은데 하면서 개발을 하다
문자열을 비교해서 처리할 부분이 생겨서 내는 당연히 <if test="removed=='N'" > 요렇게 하면 될줄 알고 했는데 아무리 해도 안됐다.
<if test="removed==N" > 이런것도 해보고 오만걸 다써봤는데 계속 삽질만 됐다.
구글로 검색을 해도 키워드를 후진 키워드를 넣었나 검색도 드럭게 안됐다. ... -_-
겨우 해결방법을 찾았는데.. 음 이런걸 검색하는 능력이 후지진 않았는데 이상하게 검색이 잘 안됐다.
결론적으로 죠걸 해결할려면 요렇게 하면 된다.
<if test="removed!=null and removed.equalsIgnoreCase('N')">REMOVED = 'N'</if>
보니까 죠기 test 에서 파라메터로 넘어온 프로퍼티 객체의 메소드를 직접 호출할수 있는것 같다!!!!!
test 안에서 쓰는 메소드니깐 return 이 boolean 타입이여야 하긋지???
파라메터로 null 이 넘어올수도 있으니깬 익셉션 나는걸 방지하기 위해서 일단 null 인지 비교하고 다음으로 넘어온 프로퍼티가 스트링 객체니까
대소문자 안가리고 비교하라고 equalsIgnoreCase 메소드를 호출하도록 했다. 물론 equals() 메소드를 호출해도 상관은 없다.
'mybatis' 카테고리의 다른 글
Oracle Clob 긴문자열 MERGE 할때 java.sql.SQLRecoverableException: IO Error: Connection reset 발생할때 (0) | 2018.05.24 |
---|---|
java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransactionFactory.newTransaction (0) | 2011.11.28 |
mybatis Oracle Procedure 호출하기 (0) | 2011.10.25 |
mybatis 동적쿼리 조건문에 isEmpty, isNotEmpty 를 써보자. (2) | 2011.10.18 |
mybatis 쿼리, 쿼리결과 로깅을 위한 log4j.xml 설정 (0) | 2011.10.12 |