0%

Mybatis(마이바티스) 동적 쿼리 if문 문법, Mybatis(마이바티스)사용법, Mybatis(마이바티스)사용방법, Mybatis(마이바티스) if 검사방법,

Mybatis(마이바티스) 동적 쿼리 if문 문법, Mybatis(마이바티스) <if> 사용법, Mybatis(마이바티스) <if>사용방법, Mybatis(마이바티스) if 검사방법

Mybatis(마이바티스)는 DBMS엑세스를 쉽게 사용할수 있게 해주는 Java진영의 대표적인 ORM Framework 입니다.
Mybatis(마이바티스)는 동적쿼리 작성을 지원하여 SQL과 코드를 좀 더 간결하게 유지할 수 있습니다.
그 중 이번에는 if문 사용방법을 알아봅시다.

if문의 기본사용법

mybatis의 if문은 값을 확인하려는 조건식이 참일경우 쿼리문에 포함하도록 합니다.

1
2
3
4
5
6
7
8
<!-- 예제 -->
<select id="sql" resultType="map">
SELECT * FROM MAP
WHERE pid = '100'
<if test="keyword != null">
AND KEYWORD LIKE #{keyword}
</if>
</select>

만일 위 예시에서 parameter로 전달받은 keyword값이 null일 경우,
위 쿼리는 아래와 같이 변환될 것입니다.

1
SELECT * FROM MAP WHERE pid = '100'

좀 더 다양한 예제를 살펴보겠습니다.

문자열 비교

1
2
3
4
<if test='paraName1== "Y"'></if>

// 다음과 같이 메소드 사용도 가능합니다.
<if test='!paraName1.equals("all")'></if>

숫자 비교

1
2
3
4
5
6
7
8
9
10
11
//para값이 3보다 큰가?
<if test='para > 3'></if>

//para 값이 3보다 크거나 같은가?
<if test='para >= 3'></if>

//para값이 3보다 작은가?
<if test='para < 3'></if>

//para 이라는 파라미터의 값이 3보다 작거나 같은가?
<if test='para <= 3'></if>

주의할점으로, 이를 쓰다가 아래와 같은 에러 메시지를 본다면 다른 대안을 사용해야합니다.
요소 유형 “?”과(와) 연관된 “?” 속성의 값에는 ‘<’ 문자가 포함되지 않아야 합니다.
원인 : 일단 원인은 “>” 또는 “<” 괄호를 XML Parsing으로 인식
해결법 : 아래와 같이 대체 식을 써서 해결이 가능합니다.
(gt, gte, lt, lte)

1
2
3
4
5
6
7
8
9
10
11
//para값이 3보다 큰가?
<if test='para gt 3'></if>

//para 값이 3보다 크거나 같은가?
<if test='para gte 3'></if>

//para값이 3보다 작은가?
<if test='para lt 3'></if>

//para 이라는 파라미터의 값이 3보다 작거나 같은가?
<if test='para lte 3'></if>

그리고(and)조건

&&가 아닌 and로 써야 합니다.

1
<if test='para == "2" and para2 == "1"'></if>

또는(or)조건

||가 아닌 or로 써야 합니다.

1
<if test='para == "2" or para2 == "1"'></if>

choose, when, otherwise

if - else 구문 처럼 쓰기 위해서는 choose, when, otherwise 구문을 사용할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<select id="sql" resultType="map">
SELECT * FROM MAP
WHERE POIX = '100'
<choose>
<when test="keyword == 'test1'">
AND KEYWORD LIKE #{keyword}
</when>
<when test="keyword == 'test2'">
AND KEYWORD LIKE #{keyword}
</when>
<otherwise>
AND KEYWORD = '경기'
</otherwise>
</choose>
</select>

여기까지 마이바티스사용법에 대해 알아보았습니다.
다음에 또 다른 태그 사용법을 알아볼 수 있도록 하겠습니다.

Mybatis(마이바티스) 동적 쿼리 if문 문법, Mybatis(마이바티스)사용법, Mybatis(마이바티스)사용방법, Mybatis(마이바티스) if 검사방법,
mybatis choose, mybatis when, mybatis otherwise,

#mybatis,#framework,#orm,#if,#if문,#choose,#when,#otherwise,#마이바티스,#마이바티스,#choose문,#when문,#mybatis동적쿼리,#동적쿼리