본문 바로가기
MyBatis

[MyBatis] if 조건절 문자열 비교하기

by 네모세모동동 2024. 11. 11.

마이바티스에서 조건문에서 문자열을 비교하여 조회 조건을 추가하려는 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 특수표현식 &quot; 을 사용했다.

<if test="useYN == &quot;Y&quot;">
    AND (USE_YN =  'Y' OR USE_YN IS NULL) 
</if>
<if test="useYN == &quot;N&quot;">
    AND USE_YN =  'N'
</if>

 

 

오늘도 간단하게 해결😆


[출처]

'MyBatis' 카테고리의 다른 글

[MyBatis] <![CDATA[ ]]> 사용해서 부등호 처리하기  (0) 2025.03.06
[MyBatis] 샵#{} 과 달러${} 차이  (1) 2024.12.09