Database
MyBatis 반복문(foreach) + String[] 배열(array) / iBatis 반복문(iterate) + 동적 쿼리(dynamic)
보리하늘
2017. 12. 28. 10:02
반응형
myBatis 와 iBatis 의 반복문은 크게 다르진 않다.
**
open="(" : 반복시 '('로 시작
close=")" : 반복시 ')'로 끝남
prepend : 'WHERE' 과 같이 iterate 문 앞에 첨가
*** myBatis
1 2 3 4 5 6 7 | <delete id="Delete" parameterType="map"> DELETE FROM ${TABLENAME} WHERE <foreach collection="ID" item="item" separator="or" index="index"> ID = #{item} </foreach> </delete> | cs |
collection : 전달받은 인자값 이름(변수 이름)
item : foreach 문 안에서 사용할 매개변수 이름
separator : foreach 문이 한번 돌고 다음번 돌때의 구분자
* 배열을 파라미터로 받을때
collection 에 꼭! array 로!!
1 2 3 4 5 6 7 8 9 10 | String[] 배열이름; <select id="selectList" parameterType="java.util.ArrayList" resultType="test.vo"> SELECT * FROM TEST WHERE ID_SEQ IN ( <foreach collection="array" item="item" index="index" separator=","> ${item} </foreach> ) </select> | cs |
*** iBatis
1 2 3 4 5 6 7 8 9 10 | <insert id="Insert" parameterClass="MenuCreatVO"> INSERT ALL <dynamic> <iterate property="functionList"> INTO USV_MENU_AUTHOR ( AUTHOR_CODE ,MENU_NO ) VALUES (#authorCode#, #functionList[]#) </iterate> </dynamic> SELECT * FROM dual </insert> | cs |
property : 전달받은 인자값 이름(변수 이름)
conjunction : foreach 문이 한번 돌고 다음번 돌때의 구분자
728x90
반응형