본문 바로가기

Database/공부공부

[MyBatis] foreach 태그 지원 옵션

 

* MyBatis foreach태그 (구 ibatis [ iterate )

collection : 전달받은 인자. List or Array 형태만 가능.

item : 전달받은 인자 값을 alias명으로 대체.

open : 구문이 시작될때 삽입할 문자열.

close : 구문이 종료될 때 삽입할 문자열.

separator : 반복 되는 사이에 출력할 문자열.

index : 반복되는 구문 번호. 0부터 순차적으로 증가.

 

<select id="selectUsersByIds" resultType="User">
  SELECT *
  FROM users
  WHERE id IN
  <foreach item="itemId" collection="idList" open="(" separator="," close=")">
    #{itemId}
  </foreach>
</select>

즉, idList = {ID1, ID2, ID3, ID4...} 이런식으로 데이터가 들어있으면 

<select id="selectUsersByIds" resultType="User">
  SELECT *
  FROM users
  WHERE id IN (ID1, ID2, ID3, ID4, ...)
</select>

위같은 형태가 되는거다.