● if

● choose(when, otherwise)

 

<if>

if는 test라는 속성과 함께 특정한 조건이 true가 되었을 때 포함된 SQL을 사용하고자 할 때 사용

ex) 단일 항목으로 제목, 내용, 작성자(title, content, writer)에 대해 검색해야 하는 상활 일 때

- 검색 조건이 'T'면 제목(title)이 키워드(keyword)인 항목을 검색

- 검색 조건이 'C'면 내용(content)이 키워드(keyword)인 항목을 검색

- 검색 조건이 'W'면 작성자(writer)이 키워드(keyword)인 항목을 검색

// 검색 조건이 T일 경우
<if test="type == 'T'.toString()">
	(title like '%' || #{keyword} || '%')
</if>
// 검색 조건이 C일 경우
<if test="type == 'C'.toString()">
	(content like '%' || #{keyword} || '%')
</if>
// 검색 조건이 W일 경우
<if test="type == 'W'.toString()">
	(writer like '%' || #{keyword} || '%')
</if>

 

 

<choose>

if와는 달리 choose는 여러 상황들 중 하나의 상황에서만 동작

Java 언어의 'if~else'나 JSTL의 <choose>와 유사

<choose>
  <when test="type == 'T'.toString()">
      (title like '%' || #{keyword} || '%')
  </when>
  <when test="type == 'C'.toString()">
      (content like '%' || #{keyword} || '%')
  </when>
  <when test="type == 'W'.toString()">
      (writer like '%' || #{keyword} || '%')
  </when>
  
  <otherwise>
  	(title liek '%' || #{keyword} || '%' OR content like '%' || #{keyword} || '%')
  </otherwise>
</choose>

 

+ Recent posts