Mybatis(마이바티스) 동적 쿼리 if문 문법, Mybatis(마이바티스) <if> 사용법, Mybatis(마이바티스) <if>사용방법, Mybatis(마이바티스) if 검사방법
Mybatis(마이바티스)는 DBMS엑세스를 쉽게 사용할수 있게 해주는 Java진영의 대표적인 ORM Framework 입니다.
Mybatis(마이바티스)는 동적쿼리 작성을 지원하여 SQL과 코드를 좀 더 간결하게 유지할 수 있습니다.
그 중 이번에는 if문 사용방법을 알아봅시다.
if문의 기본사용법
mybatis의 if문은 값을 확인하려는 조건식이 참일경우 쿼리문에 포함하도록 합니다.
<예제>
<select id="sql" resultType="map">
SELECT * FROM MAP
WHERE pid = '100'
<if test="keyword != null">
AND KEYWORD LIKE #{keyword}
</if>
</select>
만일 위 예시에서 parameter로 전달받은 keyword값이 null일 경우,
위 쿼리는 아래와 같이 변환될 것입니다.
SELECT * FROM MAP WHERE pid = '100'
좀 더 다양한 예제를 살펴보겠습니다.
문자열 비교
<if test='paraName1== "Y"'></if>
// 다음과 같이 메소드 사용도 가능합니다.
<if test='!paraName1.equals("all")'></if>
숫자 비교
//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)
//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로 써야 합니다.
<if test='para == "2" and para2 == "1"'></if>
또는(or)조건
||가 아닌 or로 써야 합니다.
<if test='para == "2" or para2 == "1"'></if>
choose, when, otherwise
if - else 구문 처럼 쓰기 위해서는 choose, when, otherwise 구문을 사용할 수 있습니다.
<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>
여기까지 마이바티스 <if> 사용법에 대해 알아보았습니다.
다음에 또 다른 태그 사용법을 알아볼 수 있도록 하겠습니다.
Mybatis(마이바티스) 동적 쿼리 if문 문법, Mybatis(마이바티스) <if> 사용법, Mybatis(마이바티스) <if>사용방법, Mybatis(마이바티스) if 검사방법,
mybatis choose, mybatis when, mybatis otherwise,
#mybatis,#framework,#orm,#if,#if문,#choose,#when,#otherwise,#마이바티스,#마이바티스,#choose문,#when문,#mybatis동적쿼리,#동적쿼리
'개발후기-프레임워크' 카테고리의 다른 글
react vs vue, Vue vs React, vue 와 react 차이, vue.js와 react.js 차이, 비교 (0) | 2021.11.18 |
---|---|
.net(dotnet) 6.0 무료 다운로드, 닷넷 6.0 무료 다운로드, .net 6.0 변경점, 닷넷 6.0 변경점, 닷넷6.0정식출시 (0) | 2021.11.15 |
mybatis (마이바티스) 개발후기 (0) | 2021.09.10 |
bootstrap (부트스트랩) 개발후기 (0) | 2021.08.30 |
MSTestv2 사용후기 (0) | 2021.08.25 |
댓글