728x90
동적 쿼리(if, choose)
복잡한 형태의 쿼리를 만들다 보면 로직에따라 if문을 추가해야 한다던지 if else 문을 추가해야할 경우가 있습니다.
myBatis는 이를위해 동적 쿼리를 위한 기능을 제공합니다.
그중에서도 가장 많이 사용되는 if 문과 choose문을 살펴보겠습니다.
동적쿼리는 XML 매퍼에 지정하게 되는데, JSTL을 사용해봤던 사람들이라면 큰 어려움이 없는 문법입니다.
IF
age라는 속성의 값이 null이나 빈값이 아닐때 검색조건에 추가하는 구문입니다.
<select id="getContentsP" parameterType="hashmap" resultType="com.test.vo.TestVo">
SELECT
id, name
FROM
TB_test a
WHERE
type = 'A'
<if test="age != null AND age != ''">
AND age = #{age}
</if>
</select>
Choose
if else와 같다고 보면 됩니다.
<select id="getContentsP" parameterType="hashmap" resultType="com.test.vo.TestVo">
SELECT
id, name
FROM
TB_test a
WHERE
type = 'A'
<choose>
<when test="age > 20 ">
AND age > #{age}
</when>
<when test="age < 20 ">
AND age < #{age}
</when>
<otherwise>
AND age is not null
</otherwise>
</choose>
</select>
728x90
'프로그래밍 > Java' 카테고리의 다른 글
[java/자바] Static 이란? Static 정리 (4) | 2020.06.24 |
---|---|
[자바] 소수점 올림, 반올림, 버림 (0) | 2020.06.13 |
자바(Java) 개발자를 위한 남궁성의 자바(Java)의 정석 PDF (2) (0) | 2020.04.08 |
자바(Java) 개발자를 위한 남궁성의 자바(Java)의 정석 PDF (1) (0) | 2020.04.08 |
자바 소수점 사용하기 (0) | 2020.03.30 |