반응형
- mybatis foreach문 사용하기 -
mybatis 에서 동적쿼리인 foreach문을 사용하는 방법에 대해 알아보자.
코드를 보고 문법 및 사용 태그 옵션을 확인하도록하자.
▶예제1)
SELECT *
FROM cm_mine
WHERE 1 = 1
<if test="list != null and list.size != 0">
AND id IN
<foreach item="item" collection="list" open="(" separator="," close=")">
# <!-- list 단일 값(string,int 등)-->
<!--list<VO> 일 경우 : #-->
</foreach>
</if>
직접 사용하는 형식에 대해서는 이제 알았으니 자세하게 사용되는 태그 옵션들에 대해 알아보자.
▷options
collection : 전달받은 인자/변수 즉, list 같은 배열 형식의 변수
item : 배열에서의 값 하나하나를 의미한다.(script 나 java에서 foreach를 사용해봤으면 item,index를 알것이다.)
index : 현재 for문을 돌고있는 index를 의미한다.(0,1,2,3, ...)
open : foreach문이 시작될때 앞에 삽입될 문자열
separator : foreach문에서 반복되는 값 사이사이에 넣어줄 문자열
close : foreach문이 종료될때 앞에 삽입될 문자열
실제로 위 동적쿼리가 어떤식으로 실행되는지를 확인해보자면
List<String> list; //value : 'John', 'Ho', 'Mine'
이렇게 3개의 값을 가진 list변수가 존재하고 위 예제를 통해 다룬 쿼리문을 실행하게 되면
실제 쿼리문을 아래처럼 작성되어 실행된다.
SELECT *
FROM cm_mine
WHERE 1 = 1
AND id IN ('John', 'Ho', 'Mine')
동적쿼리문은 실제로 많이 사용되기 때문에 까먹지말자.
반응형
댓글