MyBatis foreach

초보자·2022년 12월 9일
0

myBatis

목록 보기
1/1

foreach

반복적인 SQL 구문을 작성할 때 사용합니다.
주로 데이터 타입이 동일한 다수의 배열 데이터를 검색조건에 반영해야 할 때, OR 또는 IN 구문에서 많이 사용합니다.

6가지의 속성을 가지고 있으며

1) collection : 전달받은 인자를 속성값으로 삽입합니다. Map, Array, List, Set 등과 같은 반복 가능한 객체를 전달할 수 있습니다.

2) item : collection속성에서 전달받은 collection 인자값을 대체할 '이름'을 속성 값으로 삽입합니다.

3) open : 구문이 시작될때 삽입할 문자열을 속성 값으로 삽입합니다.

4) close : 구문이 종료될때 삽입할 문자열을 속성 값으로 삽입합니다.

5) separator : 반복되는 구문 사이에 삽입할 문자열을 속성값으로 삽입합니다.

6) index : index값을 부를 일종의 변수명을 속성값으로 삽입합니다. 태그 내에 #{index}를 통해 호출할 때 0부터 반환됩니다.

예제

select * from TABLE
    	<if test="{ Map, Array, List 변수명} != null and { Map, Array, List 변수명} != ''">
    		 where column not in 
    		<foreach collection='{ Map, Array, List 변수명}' index='index' item='item' open='(' close=')' separator=','>
    			#{item}
    		</foreach>
    	</if>

['A', 'B', 'C'] 형식의 list 를 넣는다면

select * from TABLE where column not in ('A', 'B', 'C')

이 된다

하지만 collection에 null이 온다면 에러가 나니까 if 로 처리해줬다

profile
까먹기전에 기록하자

0개의 댓글