<foreach>
item
: 한 개의 항목을 가리키는 변수 이름 지정
index
: 인덱스 값을 꺼낼 때 사용하는 변수 이름 지정
collection
: java.util.List 구현체나 배열 객체 지정
open
: 최종 반환값의 접두어 지정
close
: 최종 반환값의 접미어 지정
separator
: 구분자 문자열 지정
<foreach
item="항목"
index="인덱스"
collection="목록"
open="시작문자열"
close="종료문자열"
separator="구문자"
>
</foreach>
<foreach collection="List or Array" item="alias" ></foreach>
<select id="selectPostIn" resultType="domain.blog.Post">
SELECT *
FROM POST P
WHERE ID in
<foreach item="item" index="index" collection="list"
open="(" separator="," close=")">
#{item}
</foreach>
</select>
// List일 경우
List<String> list = new ArrayList<>();
list.add("abc");
list.add("bcd");
list.add("cde");
// foreach
SELECT * FROM LIST
WHERE ID IN
<foreach collection="list" index="index" item="item" open="(" close=")" seperator=",">
#{abc}
</foreach>
-> list 테이블에서 id가 abc
, bcd
, cde
인 값들을 가져온다
// Array일 경우
String[] arr = {"abc", "cde"}
// foreach
SELECT * FROM lIST
WHERE ID IN
<foreach collection="arr" index="index" item="item" open="(" close=")" seperator=",">
#{item}
</foreach>
-> list 테이블에서 id가 abc
,cde
인 값들을 가져온다
https://atoz-develop.tistory.com/entry/MyBatis-%EB%8F%99%EC%A0%81-SQL-choose%EC%99%80-set%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-%EB%8F%99%EC%A0%81-SQL-%EB%A7%8C%EB%93%A4%EA%B8%B0
https://java119.tistory.com/85