foreach 확장
1. foreach에서 배열사용하기
기존에는 foreach에서는 List만 사용이 가능하다고 알고 있었는데 배열도 사용가능하다.
List 사용방법
1 2 3 4 5 6 7 8 9 10 11 12 13
| <!-- JAVA --> List list = new ArrayList(); list.add("value1"); list.add("value2");
Map map = new Map(); map.put("list", list);
<!-- MYBATIS --> <foreach collection="list" item="item"> #{item} </foreach>
|
배열 사용방법
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <!-- JAVA --> String[] array = { "value1", "value2" };
Map map = new Map(); map.put("array", array);
<!-- MYBATIS --> <foreach collection="array" item="item"> #{item} </foreach>
|
배열이나 리스트나 사용방법은 동일 하다
2. foreach에서 Map 사용하기
foreach에서 Map을 지원하는건 아니다. Map의 메서드들 중 하나인 entrySet을 이용하여 작성한다
1 2 3 4 5 6 7 8 9 10 11 12 13
| <!-- JAVA --> Map paramMap = new Map(); paramMap.put("id", "value"); paramMap.put("name", "value");
Map map = new Map(); map.put("paramMap", paramMap);
<!-- MYBATIS --> <foreach collection="paramMap.entrySet()" index="key" item="value"> #{value} </foreach>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <!-- WHERE 절에서 사용 --> Map paramMap = new Map(); paramMap.put("id", "value"); paramMap.put("name", "value");
SELECT * FROM TABLE WHERE <!-- WHERE 절에 사용 --> <foreach collection="paramMap.entrySet()" index="key" item="value"> ${key} = #{value} </foreach>
<!-- UPDATE문에서 활용 --> Map paramMap = new Map(); paramMap.put("id", "value"); paramMap.put("name", "value");
UPDATE TABLE SET <foreach collection="paramMap.entrySet()" index="key" item="value"> ${key} = #{value} </foreach>
|
Map을 활용해서 where 조건을 걸때나 update시에 값 변경할때 동적으로 사용가능하다