IBATIS/myBatis
2022.05.02 / 15:57

MyBatis - µ¿Àû Äõ¸® »ç¿ëÇϱâ

ÄÚÄÚ·Î
Ãßõ ¼ö 107
MyBatis - µ¿Àû Äõ¸® »ç¿ëÇϱâ
MyBatis 2019. 2. 12. 23:00

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]