반응형
MyBatis를 이용해서 개발중에 NumberFormatException이 발생했다.
발생한 위치는 다이나믹 쿼리에서 발생했는데 그 이유를 알지 못해서 엉뚱한 곳에서 찾다가 문제를 알게 되었다.
NumberFormatException의 발생 위치
<if test="PARAM != null and PARAM2 == 'G'">
이 부분인데 iBatis, myBatis를 개발한 사람들이라면 다 알 것이다.
문자열 비교시에 ==를 하면 안되고 eq를 써야 한다는 것을 말이다.
Java에서 문자열 비교시에 equals를 써야 하듯이 iBatis, myBatis에서는 eq를 써야 한다.
iBatis, myBatis에서는 문자열에 따라서 알아서 내부적으로 파싱처리를 한다. 간단한 문법을 까먹어서 잠시 고생을 했다. 그런데 내 기억상으로는 eq로만으로 iBatis에서는 되었던 것 같은데 myBatis에서 다시 동일한 문제가 발생했다.
결국.
<if test="PARAM != null and PARAM2 eq 'G'.toString()">
와 같이 해주어야 해결이 되었다.
종종 느끼고 있지만 myBatis는 아직 불안정한 것 같다.
반응형
'Devlopment > Java' 카테고리의 다른 글
Java 이전 버전을 받을 수 있는 URL (0) | 2013.03.28 |
---|---|
Java 실행 (0) | 2013.01.31 |
Tomcat & Java의 memory leak 분석 (0) | 2012.07.17 |
Tomcat 및 Java ThreadPool에서 memory leak 현상 (3) | 2012.07.12 |
자바 기본 메소드의 구현 (0) | 2012.06.20 |
Java간의 통신 (1) | 2012.05.10 |
Netty서버에서 1024이상 받지 못하는 문제의 해결법 (0) | 2012.04.15 |
XmlGenerator - Java에서 XML 생성 (3) | 2012.03.09 |
JAVA.LANG.CLASS를 통한 동적 객체 생성 (0) | 2012.02.28 |
Java SNMP Programming (0) | 2012.02.13 |