iBatis는 볼 수록 놀랍네..
iterate를 이용해서 UNION을 다음과 같이 구현할 수 있습니다.
JAVA 쪽에서는 다음과 같이 parameter를 넘길 수 있습니다.
<select id="step100" parameterClass="java.util.HashMap"
resultClass="hashmap" remapResults="true">
SELECT xxxx
FROM
(
<iterate property="dateList" open="" close="" conjunction="UNION ALL">
SELECT
xxx
FROM $tabList[]$WHERE rownum = 1
</iterate>
) x
</select>
HashMap<String, ArrayList<String>> tabList = new HashMap<String, ArrayList<String>>() ;
ArrayList<String> dList = new ArrayList<String>() ;
dList.add( "080220" ) ;
dList.add( "080221" ) ;
dList.add( "080222" ) ;
dList.add( "080223" ) ;
tabList.put( "tabList", dList ) ;
...
...
List list = sqlMap.queryForList( "step100", tabList ) ;
iterate를 이용하면 WHERE 절에 IN( ... ) 구현 혹은 OR 같은 것도 구현하기 쉽습니다.
iterate에 open="(" close=")" 를 주어 iterate 시작과 끝에 괄호를 줄 수도 있습니다.
'SQL > IBATIS' 카테고리의 다른 글
iBatis와 DBCP 바로알기 (0) | 2014.02.12 |
---|---|
ibatis iterate 사용하기 (0) | 2014.02.12 |
[iBatis] iterate 사용법 (0) | 2014.02.12 |
[iBatis] Dynamic SQL, iterate (0) | 2014.01.28 |
iBatis 예제 - 3 (iBatis 프로시저(procedure)를 이용한 데이터 insert) (0) | 2014.01.28 |
iBatis 예제 - 2 (iBatis iterate를 이용한 동적 쿼리) (0) | 2014.01.28 |
iBatis 예제 - 1 (iBatis 기본설정 및 데이터 출력) (0) | 2014.01.28 |
iBatis 동적인 SQL 항목별 요소 (0) | 2014.01.28 |