오늘은 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() 으로 변경하여 사용하셔도 됩니다만 저는 전자의 경우가 더 편하기떄문에 ""로 변경하는것을 추천드립니다.
'Development > Java' 카테고리의 다른 글
[Mybatis] selectkey 사용시 key 값을 가져오지 못하는 경우 (0) | 2017.05.23 |
---|---|
[Mybatis] java.sql.SQLException: 허용되지 않은 작업 (0) | 2017.04.27 |
[Quartz] 1.x.x 사용하다 2.x.x로 변경 시 변경된 메서드 (0) | 2017.03.16 |
Spring Framework 3.2 + Spring-security 3.2 구성하기 (0) | 2016.12.21 |
Jar File Download Site (2) | 2016.12.20 |