(마이바티스)Error querying database. Cause: java.lang.NumberFormatException 오류 처리방법
Error querying database. Cause: Java.lang.NumberFormatException: For input string 오류가 발생하는 이유는 무엇일까?
mybatis 오류가 발생하는 케이스는 다음과 같다.
<choose>
<when test = " userCd == 'A'">
. . . . 생략
</when>
<otherwise>
. . . 생략
</otherwise>
</choose>
[오류 해결방법]
<choose>
<when test = ' userCd == "A" '>
. . . . 생략
</when>
<otherwise>
. . . 생략
</otherwise>
</choose>
만약 한자릿수의 문자형 숫자인경우에도 주의가 필요하다. 아래와 같이 비교하는 경우 값이 비교되지않는다.
<choose>
<when test = " userCd == '1' ">
. . . . 생략
</when>
<otherwise>
. . . 생략
</otherwise>
</choose>
다음과 같이 처리해주어야 정상적으로 choose 문의 when절의 조건과 일치하게된다.
문자형 숫자라고 해서 작은 따옴표로 묶어주면 안된다.
<choose>
<when test = " userCd == 1 ">
. . . . 생략
</when>
<otherwise>
. . . 생략
</otherwise>
</choose>
오류해결은 의외로 간단한 곳에 있다.
이런문제가 발생하는 경우는 비교값이 한자릿수형 문자열이 올때 발생된다. 두자릿형 문자열부터는 문제되지않는다.
지금이라도 기록해두자.
인간은 망각의 동물이라 어쩔 수 없다.