MyBatis - µ¿Àû Äõ¸® »ç¿ëÇϱâ
1. ±âº»ÀûÀÎ µ¿Àû Äõ¸®
<select id="search" resultMap="searchVo" parameterType="map">
SELECT * FROM KH.EMPLOYEE WHERE ${searchType} = #{keyword}
</select>
map Çü½ÄÀ¸·Î °Ë»ö ŸÀÔ°ú Å°¿öµå¸¦ ¹Þ¾Æ¿Í¼ ó¸®Çß´Ù.
WHERE Àý¿¡¼ °Ë»ö ŸÀÔÀº ${ } ·Î Àü´ÞÇϸç Å°¿öµå´Â #{ } ·Î Àü´ÞÇÑ´Ù.
${ } ´Â ÆĶó¹ÌÅÍ °ªÀÌ ±×´ë·Î µé¾î°¡¸ç #{ } ´Â ÆĶó¹ÌÅÍ °ªÀÌ ' ' À¸·Î °¨½ÎÁø´Ù.
´Þ¶óÁö´Â °Ë»ö Á¶°Ç¿¡ ´ëÀÀÇÒ ¼ö ÀÖ´Ù.
2. if¹®À» ÀÌ¿ëÇÑ µ¿Àû Äõ¸®
<select id="search" resultMap="searchVo">
SELECT * FROM EMPLOYEE WHERE 1=1
<if test="searchType != null and searchType != ''">
AND NAME LIKE '%' || #{keyword} || '%'
</if>
<if test="gender != null and gender != ''">
AND GENDER = #{gender}
</if>
</select>
if¹®À» ÀÌ¿ëÇÑ µ¿Àû Äõ¸® ÀÌ´Ù.
if¹®À» ÀÌ¿ëÇÏ´Â ¹æ¹ýÀº EL ó·³ test ¼Ó¼º¿¡ Á¶°ÇÀ» ³Ö¾îÁÖ¸é µÈ´Ù.SELECT * FROM EMPLOYEE WHERE 1=1
¸ðµç if¹®ÀÇ Á¶°ÇÀÌ ¸ÂÁö ¾Ê´Â ´Ù¸é À§ÀÇ Äõ¸®¹®ÀÇ °á°ú¸¸ ¸®Å쵃 °ÍÀÌ´Ù.
¸¸¾à gender °ªÀÌ ÀÖ´Ù¸éSELECT * FROM EMPLOYEE WHERE 1=1 AND GENDER = #{gender}
ÀÌ·± Äõ¸®¹®À¸·Î µ¿ÀÛÇÒ °ÍÀÌ´Ù.
3. choose, when, otherwise ¸¦ ÀÌ¿ëÇÑ µ¿Àû Äõ¸®
if¹®À» ÀÌ¿ëÇÒ ¶§¿Í ¹æ½ÄÀº µ¿ÀÏÇÏ´Ù.
choose¹®À» ÀÌ¿ëÇÏ´Â ¹æ¹ýµµ EL °ú °°´Ù.
<select id="search" resultMap="searchVo">
SELECT * FROM EMPLOYEE WHERE 1=1
<choose>
<when test="searchType != null and searchType != ''">
AND NAME LIKE '%' || #{keyword} || '%'
</when>
<when test="gender != null and gender != ''">
AND GENDER = #{gender}
</when>
<otherwise>
AND ID = 1
</otherwise>
</choose>
</select>
if¹®À» ÀÌ¿ëÇϸé Á¶°Ç¿¡ ¸Â´Â ¸ðµç °á°ú¸¦ º¼ ¼ö ÀÖÁö¸¸
choose ¹®À» ÀÌ¿ëÇϸé Á¶°Ç¿¡ ¸Â´Â ÇÑ°¡Áö °æ¿ì¸¸ º¼ ¼ö ÀÖ´Ù.
4. foreach¹®À» ÀÌ¿ëÇÑ µ¿Àû Äõ¸®
<select id="search3" parameterType="map" resultMap="searchVo">
SELECT EMPLOYEE WHERE ID IN
<foreach collection="job" item='item' index='i' open="(" close=")" separator=",">
#{item}
</foreach>
</select>
foreach¹®À» ÀÌ¿ëÇÏ¸é ¹è¿À̳ª List µîÀ¸·Î °ªÀÌ ³Ñ¾î¿ÔÀ» ¶§ ó¸®ÇØÁÙ ¼ö ÀÖ´Ù.
foreach¹®ÀÇ »ç¿ë¹ýÀº EL°ú ´Ù¸£´Ù
collection ¼Ó¼º¿¡ ¹è¿, List °´Ã¼°¡ µé¾î°¡¸ç item ¼Ó¼ºÀº º¯¼ö À̸§À» ÁöÁ¤ÇÑ´Ù.
index ¼Ó¼ºÀº À妽º º¯¼ö À̸§À» ÁöÁ¤ÇÑ´Ù.
open°ú close ¼Ó¼ºÀº collectionÀ» ó¸®ÇÒ ¶§ ¿°í ´Ý´Â ¹®ÀÚ¿À» Á¤ÇÏ´Â °ÍÀÌ´Ù.
separator ¼Ó¼ºÀº ±¸ºÐÀÚÀÌ´Ù.
open="(" close=")" separator="," ·Î ¼³Á¤Ç߱⠶§¹®¿¡
(1, 2, 3, 4) ó·³ °ªÀÌ µé¾î°¥ °Í ÀÌ´Ù.
Ãâó: https://sinna94.tistory.com/entry/MyBatis-µ¿Àû-Äõ¸®-»ç¿ëÇϱâ?category=696828 [Chungs]