티스토리 뷰
일반적으로 쓸일이 없긴 한데, 이번에 어쩌다보니 쓰게되었다.
구조는 List를 Map에 넣고, 해당 Map을 List에 넣는다.
List<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
Map<String, Object> map = new HashMap<String, Object>();
map.put("list", list);
List<HashMap<String, Object>> allList = new ArrayList<HashMap<String, Object>>();
allList.add(map);
allList.add(map);
...
과 같은 형태로 파라미터를 설정하게 될 경우가 있다.(최근 생겼다.)
그런데 이 allList를 파라미터로 던질 경우, iterate의 property 속성에 명칭이 없어서 인식이 안되는 듯 하다.
고로, allList를 Map에 넣어주면 가독성 있게 인식한다.
Map<String, Object> param = new HashMap<String, Object>();
param.put("allList");
최종적으로 보자면,
Map > List > Map > List
param > allList > map > list
iterate 구문은 다음과 같다.
<select id="testSelectIterate" parameterClass="HashMap" resultClass="HashMap">
<iterate property="allList" conjunction="UNION ALL">
SELECT
<iterate property="allList[].list" conjunction=",">
#allList[].list[]# AS $allList[].list[]$
</iterate>
FROM DUAL
</iterate>
</select>
결과적으로 SQL문은,
SELECT
'A' AS A
, 'B' AS B
, 'C' AS C
FROM DUAL
UNION ALL SELECT
'A' AS A
, 'B' AS B
, 'C' AS C
FROM DUAL
처럼 나온다.
'Programming > JAVA' 카테고리의 다른 글
Oracle용 insert batch 샘플 (2) | 2017.07.05 |
---|---|
iBatis ParameterClass가 String일 경우 isNotEmpty (1) | 2016.10.24 |
JsonView와 pageJsonReport의 차이점 (0) | 2013.11.27 |
Spring Framework 개념 (0) | 2012.12.20 |
문자열 비교, 정렬하기. (0) | 2012.12.14 |
- Total
- Today
- Yesterday
- OSX
- 이어폰
- mysql
- my.cnf
- 아이패드 프로 12.9
- UID
- root
- UTF-8
- ioexception
- Oracle
- Too many open files
- password
- 아이패드 프로 9.7
- 비교
- audeze
- isine20
- xcopy
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |