프로그램 언어/ibatis,mybatis
ibatis iterate 사용법
[식군]
2010. 11. 24. 18:52
1. Collection 객체를 사용하거나, String[] 배열로 넘기는 방법
- 이 방법은 검색하면 많이 나와요 ^^
2. ArrayList객체안에 Map객체로 여러 속성사용
- Java Coding
public void test() throws Exception {
Map<String, List<HashMap<String,String>>> map = new HashMap<String, List<HashMap<String,String>>>();
List<HashMap<String,String>> paramList = new ArrayList<HashMap<String,String>>();
for (int idx = 0; idx < 5; idx++) {
HashMap<String,String> hashmap = new HashMap<String,String>();
hashmap.put("a", "a"+ idx);
hashmap.put("b", "b"+ idx);
hashmap.put("c", "c"+ idx);
paramList.add(hashmap);
}
map.put("condition", paramList);
list("manage.test",map);
}
- Sql Coding
<select id="manage.test" parameterClass="map" resultClass="egovMap" remapResults="true">
<iterate property="condition" conjunction="union">
select $condition[].a$, $condition[].b$, $condition[].c$ from dual
</iterate>
</select>
3. VO를 이용한 코딩
- VO
public class TestVO {
String a = "";
String b = "";
String c = "";
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
public String getC() {
return c;
}
public void setC(String c) {
this.c = c;
}
- Java Coding
public void test() throws Exception {
ArrayList<TestVO> param = new ArrayList<TestVO>();
for (int idx = 0; idx < 5; idx++) {
TestVO vo= new TestVO();
vo.setA("a"+ idx);
vo.setB("b"+ idx);
vo.setC("c"+ idx);
param .add(map);
}
list("test",param );
}
- Sql Coding
<select id="test" parameterClass="list" resultClass="testVO">
<iterate conjunction="union">
select #[].a#, #[].b#, #[].c# from dual
</iterate>
</select>