Development/Java
[Mybatis] java.lang.NumberFormatException 발생
망할고양이
2017. 4. 20. 16:27
오늘은 Mybatis를 사용하면서 당황할 수 있는 예제를 설명 드립니다.
xml 을 작성할 경우 if 문을 사용할 떄 java.lang.NumberFormatException이 발생하는 경우가 있습니다.
버그인지 모르겠으나 비교대상이 1자리 일 경우 해당 에러가 발생합니다.
예를 들어보겠습니다.
select col01,col02,col03,col03 ...... .... from dummytable where 1=1 <if test="compare_col =' ' and compare_col != 'A'"> and col2 = #{compare_col} </if> |
위의 예시와같이 ' ' 혹은 'A' 같은경우 즉 1자리의 텍스트의 경우 java.lang.NumberFormatException 이 발생하고는 합니다.
해결방법은
<if test='compare_col =" " and compare_col != "A"' > |
test의 값을 ''로 감싸고 각 값들을 ""로 사용할경우 해당 Error을 피할 수 있습니다
다른방법도 있습니다. 'A'.toString() 으로 변경하여 사용하셔도 됩니다만 저는 전자의 경우가 더 편하기떄문에 ""로 변경하는것을 추천드립니다.