마이바티스에서 조건문에서 문자열을 비교하여 조회 조건을 추가하려는 SQL문을 짰다.
<if test="useYN == 'Y'">
AND (USE_YN = 'Y' OR USE_YN IS NULL)
</if>
<if test="useYN == 'N'">
AND USE_YN = 'N'
</if>
위 코드처럼 짜고 실행하면 NumberFormatException 에러를 만날 수 있다...
java.lang.NumberFormatException: For input string: "Y”
💡'Y' 를 문자열로 인식하는 것이 아니라 Char 타입으로 인식해서 발생하는 오류라고 한다.
조건절에서 문자열을 비교하고 싶은 경우에는 작은 따옴표(' ')가 아닌 큰 따옴표 (" ") 를 사용해야한다.
작은 따옴표와 큰따옴표의 위치를 바꾸는 간단한 방법도 있다.
하지만 프로젝트의 통일성을 위해 큰 따옴표의 HTML 특수표현식 " 을 사용했다.
<if test="useYN == "Y"">
AND (USE_YN = 'Y' OR USE_YN IS NULL)
</if>
<if test="useYN == "N"">
AND USE_YN = 'N'
</if>
오늘도 간단하게 해결😆
[출처]
'MyBatis' 카테고리의 다른 글
| [MyBatis] <![CDATA[ ]]> 사용해서 부등호 처리하기 (0) | 2025.03.06 |
|---|---|
| [MyBatis] 샵#{} 과 달러${} 차이 (1) | 2024.12.09 |