1. 동적SQL이란?
•
검색기능이나 다중입력처리 등을 수행해야할 경우 SQL을 실행하는 DAO를 여러번 호출하거나 batch기능을 써야하는데 마이바티스에서는 이를 동적으로 제어 할 수 있는 구문을 제공하여 조금더 쉽게 쿼리를 구현하게 해준다.
2. 지원 구문 종류
1.
if문
2.
choose문(when,otherwise)
3.
trim(where, set)
4.
foreach
2-1 if구문
•
동적 쿼리중 가장 기본적으로 사용되는 구문
•
특정 조건을 만족할 경우안의 구문을 쿼리에 포함시킨다
•
if구문 예시, 다중구문도 쓸수 있다
2-2 choose(when, otherwise)
•
자바의 if-else, switch, JSTL의 choose구문과 유사하며 주어진 구문 중 한가지만을 수행하고자 할때 사용한다.
•
다중구문
2-3 trim(where , set)
•
trim은 쿼리의 구문의 특정부분을 없앨 때 사용
•
where은 기존 쿼리의 where 절을 동적으로 구현할 때 사용
•
set은 기존의 update set절을 동작시킬 때 구현할 때 사용
2-3-1
1.
where의 구문으로 변경
•
<where> 태그는 단순히 where만을 추가하지만, 만약 태그 안의 내용이 'AND' , 'OR'로 시작할 경우 AND, OR를 제거한다
-예시
2-3-2
2.trim구문
<trim>태그는 태그 안의 내용 완성될 떄 처음시작할 단어와 시작 시 제거해야할 단어를 명시하여
where와 같은 내용으로 구현 할 수 있다.
2-3-3
3.foreach구문
•
동적쿼리를 할 때 Collection에 반복처리를 수행해준다.
•
예시
3. bind구문
3-1 bind구문이란 ??
•
특정문장을 미리 생성하여 쿼리에 적용해야할 경우 사용
•
_parameter를 통해 전달받은값에 접근하여 구문을 생성한다
•
예시