동적 SQL 엘리먼트
엘리먼트 예 |
설명 |
<if test="조건">SQL 문</if> |
<if>태그는 어떤 값의 상태를 검사하여 참일 경우에만 SQL문을 포함하고 싶을 때 사용한다. test 속성에 지정된 조건이 참이면 <if>태그의 내용을 반환한다. |
<choose> <when test="조건1">SQL 문</when> <when test="조건2">SQL 문</when> <otherwise>SQL 문</otherwise> </choose> |
<choose>태그는 검사할 조건이 여러 개일 경우에 사용한디. test 속성에 지정된 조건이 참이면 <when>태그의 내용을 반환한다. 일치하는 조건이 없으면 <otherwise>의 내용을 반환한다. |
<where> <if test="조건1">SQL 문</if> <if test="조건2">SQL 문</if> </where> |
<where>태그는 WHERE 절을 반환한다. <where>안의 하위태그를 실행하고 나서 반환값이 있으면 WHERE 절을 만들어 반환하고, 없으면 WHERE 절을 반환하지 않는다. |
<trim prefix="단어" prefixOverrides="문자열|문자열"> <if test="조건1">SQL 문</if> <if test="조건2">SQL 문</if> </trim> |
<trim>태그는 특정 단어로 시작하는 SQL문을 반환하고 싶을 때 사용한다. prefix는 반환값 앞에 붙일 접두어를 지정한다. prefixOverrides는 반환할 값에서 제거해야 하는 접두어를 지정한다. 다시 말하면<trim>의 반환값이 있다면, 그 값의 앞 부분이 prefixOverride에 지정된 문자열과 일치할 경우 그 문자열을 제거한다. 그리고 그 값의 앞부분에 prefix 로 지정한 접두어를 붙여 반환한다. |
<set> <if test="조건1">SQL 문</if> <if test="조건2">SQL 문</if> </set> |
<set>태그는 UPDATE 문의 SET 절을 만들 때 사용한다. 조건이 참인 <if>의 내용은 SET 절에 포함된다. SET 절의 항목이 여러 개일 경우 자동으로 콤마(,)를 붙인다. |
<foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} </foreach> |
<foreach>태그는 목록의 값을 가지고 SQL문을 만들 때 사용한다. 특히 IN(값, 값, ...) 조건을 만들 때 좋다. item 속성에는 항목을 가리킬 때 사용할 변수의 이름을 지정한다. index 속성에는 항목의 인덱스 값을 꺼낼 때 사용할 변수 이름을 지정한다. open 속성에는 최종 반환값의 접두어를 지정한다. close 속성에는 최종 반환값의 접미어를 지정한다. separator 속성은 반복으로 생성하는 값을 구분하기 위해 붙이는 문자열을 지정한다. |
<bind name="변수명" value="값" /> |
<bind>태그는 변수를 생성할 때 사용한다. |
코트슈(Code Troubleshooter) 프로그래머의 일상 Execution, Errors, Find, Solution 개발자들은 많은 오류로 시간을 허비한다... 코트슈가 도와드립니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!