foreach 구문은 주로 반복문을 통해 동적으로 SQL 쿼리를 생성해야 할 때 사용된다.
컬렉션의 각 항목에 대해 반복하면서 동일한 SQL 코드를 실행할 수 있습니다.
foreach문 속성
item: 반복할 때마다 현재 항목을 참조할 변수의 이름을 지정
collection: 반복할 컬렉션을 지정
open: 반복 시작 시 출력할 문자열을 지정
separator: 각 항목 사이에 출력할 문자열을 지정
close: 반복 종료 시 출력할 문자열을 지정
<참고>
컬렉션 파라미터로 Map이나 배열객체와 더불어 List, Set등과 같은 반복가능한 객체를 전달할 수 있다. 반복가능하거나 배열을 사용할때 index값은 현재 몇번째 반복인지를 나타내고 value항목은 반복과정에서 가져오는 요소를 나타낸다.
Map을 사용할때 index는 key가 되고 항목은 value가 된다.
<select id="selectPostIn" resultType="domain.blog.Post">
SELECT *
FROM POST P
<where>
<foreach item="item" index="index" collection="list"
open="ID in (" separator="," close=")" nullable="true">
#{item}
</foreach>
</where>
</select>