ibatis && mybatis

[ibatis] select, update, delete에 iterate 사용 방법

도미노& 2017. 3. 18. 16:03

sql 툴에서 날리는 원문 쿼리를 보면 이해가 쉽다.

보통의 경우 리스트(#[]#로 표현되는)에 담겨오는 data1, data2, data3, ... 은 key값이 된다.



■ select iterate 사용 방법

# 원문 쿼리
1
SELECT * FROM TBLNAME WHERE COLUMNNAME IN ('data1','data2','data3')
cs


# iterate 작성
- data1, data2, data3이 List에 담겨서 넘어온다. #[]# 부분

1
2
3
4
5
6
<select id="select " parameterClass="java.util.List">
  SELECT * FROM
  <iterate open="(" close=")" conjunction="," prepend="WHERE COLUMNNAME IN ">
    #[]#
  </iterate>
</select >
cs



 delete iterate 사용 방법


# 원문 쿼리

1
DELETE FROM TBLNAME WHERE COLUMNNAME IN ('data1','data2','data3')
cs


# iterate 작성

1
2
3
4
5
6
<delete id="delete" parameterClass="java.util.List">
  DELETE FROM TBLNAME
  <iterate open="(" close=")" conjunction="," prepend="WHERE COLUMNNAME IN ">
    #[]#
  </iterate>
</delete>
cs



■ update iterate 사용 방법

# 원문 쿼리
1
UPDATE TBLNAME SET COLUMNNAME = 'VALUE' WHERE COLUMNNAME IN ('data1','data2','data3')
cs

# iterate 작성
1
2
3
4
5
6
<update id="update" parameterClass="java.util.List">
  UPDATE TBLNAME SET COLUMNNAME = 'VALUE'
  <iterate open="(" close=")" conjunction="," prepend="WHERE COLUMNNAME IN ">
    #[]#
  </iterate>
</update>
cs