Java

(마이바티스)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>

오류해결은 의외로 간단한 곳에 있다.
이런문제가 발생하는 경우는 비교값이 한자릿수형 문자열이 올때 발생된다. 두자릿형 문자열부터는 문제되지않는다.
지금이라도 기록해두자.
인간은 망각의 동물이라 어쩔 수 없다.

Leave a Reply

error: Content is protected !!