์๋ฐ ์ธํฐํ์ด์ค Mapper๋ฅผ ํตํด ์ฟผ๋ฆฌ๋ฅผ ๊ตฌํํ ๋, ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทธ๋๋ก ๋ฐ์ธ๋ฉํด์ ์ฌ์ฉํด์ผ ๋ ํจ์จ์ ์ธ ์ฟผ๋ฆฌ๋ฅผ ๊ตฌํํ ์ ์๋ค. ์๋๋ฉด... ์์ ํ ๋ ํ๋ ๋ฐ๊พธ๋ฉด ๋ค ๋ฐ๋๋ ๊ฒ ์ข์์์? ๊ฐ๋ฐ์๋... ๊ฐ์ ์ฝ๋๋ฅผ ๋ฐ๋ณตํ์ง ์์ง :)
๊ตฌ์กฐ ๋ฐ ์ฌ์ฉ๋ฒ
<choose>
<when test="์กฐ๊ฑด์1"> ์ฟผ๋ฆฌ1 </when>
<when test="์กฐ๊ฑด์2"> ์ฟผ๋ฆฌ2 </when>
<when test="์กฐ๊ฑด์3"> ์ฟผ๋ฆฌ3 </when>
<when test="์กฐ๊ฑด์4"> ์ฟผ๋ฆฌ4 </when>
<otherwise> ์ฟผ๋ฆฌ5 </otherwise>
</choose>
<choose> ํ๊ทธ๋ <when> ํ๊ทธ์ ํจ๊ป ์ฌ์ฉ๋๋ฉฐ, ์กฐ๊ฑด์ ์ฌ๋ฌ ๋ฒ ์์ฑํ ์ ์๋ค. ์คํ ์ <when> ํ๊ทธ์ ์กฐ๊ฑด์์ ์์๋๋ก ํ์ธํ๋ฉฐ ์ฟผ๋ฆฌ๋ฌธ์ ์คํํ๊ฒ ๋๋ค. ๋ง์ฝ <when> ํ๊ทธ์ ์กฐ๊ฑด ์์ค true ๋ฐํํ ๊ฒ์ด ์๋ค๋ฉด <otherwise> ํ๊ทธ ๋ด์ ์์ฑ๋ ์ฟผ๋ฆฌ๋ฌธ์ด ์คํ๋๋ค. <otherwise> ํ๊ทธ๋ ์๋ต ๊ฐ๋ฅํ๋ค.
์ ์ฉ ์์ XML
<mapper namespace="com.tistory.mybatisStudy.dao.studyDao">
<select id="selectABCD" parameterType="hashMap" resultType="com.tistory.judy.do.util.FrwMap">
<![CDATA[
SELECT /*SQL_ID : com.tistory.mybatisStudy.dao.studyDao.selectABCD(mybatis_Judy)*/
code_exam1
, code_exam2
, code_exam3
FROM JUDY_TABLE
WHERE BASE_YMD = #{BASE_YMD}
]]>
<choose>
<when test = 'SEL_CD != null and SEL_CD == "01"'>
AND TISTORY_CODE = '*'
</when>
<when test = 'SEL_CD != null and SEL_CD == "02"'>
AND TISTORY_CODE = '1'
</when>
<otherwise>
AND TISTORY_CODE = '0'
</otherwise>
</choose>
ORDER BY BASE_YMD
</mapper>
MyBatis <if>ํ๊ทธ์ ๋น๊ตํด๋ณด๊ณ
<choose>...<when>ํ๊ทธ ์ดํดํ๊ธฐ
๋ ๊ฐ์ง ํ๊ทธ์ ์ญํ ์ ํด๋นํ๋ ์กฐ๊ฑด๋ฌธ์ด ์๋ค๋ ์ ์์ ๋์ผํ๋ค. ํ์ง๋ง ์กฐ๊ฑด์์ ํ์ํ๋ ๊ณผ์ ์์ ์ฐจ์ด๊ฐ ์๋ค.
<if>ํ๊ทธ : ์กฐ๊ฑด์์ด true์ผ ๊ฒฝ์ฐ, ๋ค์ ์กฐ๊ฑด์์ ํ์ํ์ฌ true์ธ ์กฐ๊ฑด์ ๋ชจ๋๋ฅผ ์คํ.
<choose>ํ๊ทธ : ์กฐ๊ฑด์์ด true์ผ ๊ฒฝ์ฐ, ๋ค์ ์กฐ๊ฑด์์ ํ์ํ์ง ์๊ณ ํ๋์ ์ฟผ๋ฆฌ๋ง ์คํ.
โ๏ธReference : https://mybatis.org/mybatis-3/ko/sqlmap-xml.html