MyBatis비교문 지원 태그
<if> : 단일 조건문
<choose> <when> <otherwise> : 다중 조건문
*ibatis에는 isNull, isEmpty가 있었지만 MyBatis에는 없다.
문자열비교
paraName1 이라는 파라미터가 null이 아니면서 값이 "test"와 동일한가?
<if test='paraName1 != null and(paraName1 eq "test".toString())'>
</if>
paraName1 이라는 파라미터가 "all" 이라는 문자와 동일 하지 않은가?
<if test='!paraName1.equals("all")'>
</if>
대소문자 관계없이 비교
paraName1 이라는 파라미터가 null이 아니면서 값이 "test" or "TEST"와 동일한가?
<if test='paraName1 !=null and paraName1.equalsIgnoreCase("test")'>
</if>
특정값비교
paraName1 이라는 파라미터의 값이 "Y"인지 검사할 경우
<if test='paraName1== "Y"'></if>
paraName1 이라는 파라미터의 값이 공백인지 검사할 경우
<if test='paraName1 == " "'></if>
주의: 작은 따옴표가밖에있어야한다.
숫자비교
paraName1 이라는 파라미터의 값이 3보다 큰가?
<if test='paraName1 > 3'></if>
paraName1 이라는 파라미터의 값이 3보다 크거나 같은가?
<if test='paraName1 >= 3'></if>
paraName1 이라는 파라미터의 값이 3보다 작은가?
<if test='paraName1 < 3'></if>
paraName1 이라는 파라미터의 값이 3보다 작거나 같은가?
<if test='paraName1 <= 3'></if>
paraName1 이라는 파라미터의 값이숫자로된문자열일경우
<if test='paraName1 > "3"'></if>
//비교할 값을 쌍 따옴표로 묶어준다.
주의
요소 유형 "null"과(와) 연관된 "test" 속성의 값에는 '<'문자가포함되지않아야합니다.
이러한 예외가 발생하였다면?
원인
if 태그 안에 ">" 괄호를 인식하지 못하는 거다. 그렇다면 CDATA를 쓰면 어떨까? 역시 적용되지 않는다.
일단 원인은 ">" 괄호를 XMLParsing으로 인식한 건데, XML Parsing을 Text로 바꿔주는 CDATA 마저 적용되지 않는 현상
해결
기호 | 대체식 | 예제 |
< | lt | <if test="paraName1 lt 0"> |
> | gt | <if test="paraName1gt 0"> |
<= (또는 =<) | lte | <if test="paraName1lte 0"> |
>= (또는 =>) | gte | <if test="paraName1gte 0"> |
or문
||가 아닌 or로 쓰셔야 합니다.
or (O)
|| (X)
paraName1 값이 Y이거나 paraName2의 값이 N인 경우
<if> 문
<if test='paraName1 == "Y" or paraName2 == "N"'></if>
문
<choose>
<when test='paraName1 == "Y" or paraName2 == "N"'>
</choose>
굳이||를사용하실분들이있다면굳이!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|amp;|amp;
<if test='paraName1 == "Y" |amp;|amp; paraName2 == "N"'></if>
and문
&&가 아닌 and로 쓰셔야 합니다.
and (O)
&& (X)
paraName1 값이 Y이고 paraName2의 값이 N인 경우
<if> 문
<if test='paraName1 == "Y" and paraName2 == "N"'></if>
문
<choose>
<when test='paraName1 == "Y" and paraName2 == "N"'>
</choose>
굳이&&를사용하실분들이있다면굳이!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
&&
<if test='paraName1 == "Y" && paraName2 == "N"'></if>
null,nullString 체크
<if test='paraName1 == null'></if>
<if test="paraName1 == null"></if>
<if test="!paraName1.equals('') and paraName1!=null">
</if>
<if test="paraName1!=null and !paraName1.equals('')">
</if>
출처: https://java119.tistory.com/42
'SQL Database' 카테고리의 다른 글
로컬에서 DB접속이 안되는 경우, ERROR 1698 (28000): Access denied for user 'root'@'localhost' (0) | 2025.02.04 |
---|---|
DB dump의 개념 및 백업/복구 방법 (3) | 2023.10.15 |
Maria DB 덤프(dump) 파일 실행 방법 (0) | 2023.05.24 |