<foreach collection="param.place" item="place" open="(" close=")" separator="or">
sh.SNA_SHOW_KIND_IDX = ${place}
</foreach>
sh.SNA_SHOW_KIND_IDX = ${place}
</foreach>
collection = 전달받은 인자값
item = 전달받은 인자값을 다른이름으로 대체
open 해당 구문이 시작할떄 (
close 해당구문이 끝날떄
separator 한번 이상 반복할때 반복되는 사이에 해당 문을 넣어줌
note: "collection"파라미터 객체로 MyBatis 에 List 인스턴스나 배열을 전달 할 수 있다. 그렇게 하면 MyBatis는 Map으로
자동으로 감싸고 이름을 키로 사용한다. List 인스턴스는 'LIST' 를 키로 사용하고, 배열 인스턴스는 'array'
를 키로 사용한다.
ex)
mybatis user guide를 보면 foreach의 경우 list나 array 타입을 collection으로 설정할 수 있으며 이때 list나 array 데이터는 map으로 타입이 변환되어 저장된다고 함.
value 속성을 사용한 것으로 보아 Map.Entry.getValue 메서드를 호출하는 것이 아닐까 하는데...
select의 parameterType이 map이나 java 오브젝트라면 collection 값에 속성 이름을 설정하면 된다고 함.
ex)
<select id="..." parameterType="..." resultType="Map"> select * from test <where> name in <foreach collection="list" item="item" index="index" separator="," open="(" close=")"> #{item.value} </foreach> </where> </select>
mybatis user guide를 보면 foreach의 경우 list나 array 타입을 collection으로 설정할 수 있으며 이때 list나 array 데이터는 map으로 타입이 변환되어 저장된다고 함.
// // list를 사용할 경우(변수 이름은 list가 아니어도 됨) // List<String> list = new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c");
<!-- collection 속성 값은 반드시 list나 array만 설정해야 함 --> <foreach collection="list" item="item" index="index" separator="," open="(" close=")"> #{item.value} </foreach>
value 속성을 사용한 것으로 보아 Map.Entry.getValue 메서드를 호출하는 것이 아닐까 하는데...
// // array를 사용할 경우(변수 이름은 array가 아니어도 됨) // String[] array = new String[] { "a", "b", "c" }; <!-- collection 속성 값은 반드시 list나 array만 설정해야 함 --> <foreach collection="array" item="item" index="index" separator="," open="(" close=")"> ${array[index]} </foreach>
select의 parameterType이 map이나 java 오브젝트라면 collection 값에 속성 이름을 설정하면 된다고 함.
// // parameterType="Map" // Map<String, Object> map = new HashMap<String, Object>(); map.put("friendList', list);
<select id="..." parameterType="Map" ...> <foreach collection="friendList" .../> </select>
// parameterType="{Java object}" // SomeJavaClass pojo = new SomeJavaClass(); pojo.setEnemyList(list);
<select id="..." parameterType="SomeJavaClass" ...> <foreach collection="enemyList" .../> </select>
String[] array = new String[] { "a", "b", "c" };
답글삭제${array[index]}
parameterType="array" 로 써줘야 하나요??