MyBatis 동적 쿼리 - if, choose

*** if ***
일반 IF 문과 비슷.
값이 빈 값이 아닐때 조회 조건에 추가하는 경우 사용.

ex)
<select id="sel" resultType="HashMap"> 
   select * from T_TEST T
   where T.ID = 'id'
   <if test="name != null and name != ''">
      and T.NAME = #{name}
   </if>
</select>
 
*** choose ***
자바에서 사용하는 switch 문과 비슷.
choose 태그 내에서 when , otherwise 태그 사용.
when 조건과 일치하면 해당 쿼리문을, 일치하는 것이 없으면 otherwise 태그의 쿼리문을 추가
ex)
<select id="sel" resultType="HashMap">
   select * from T_TEST T 
   where T.ID = 'id'
   <choose>
      <when test="period > 20">
          and T.PERIOD > #{period}
      </when>

      <when test="period < 20">
          and T.PERIOD < #{period}
      </when>
      <otherwise>
          and T.PERIOD = 20
      </otherwise>
   </choose>

</select>