Dev/iBatis
[iBatis] iterate 동적 파라메터
initializerr
2019. 5. 10. 11:13
iBatis에서 select 쿼리를 할 때 where 조건에 in 을 사용하여 동적으로 여러 파라메터를 조회하고 싶은 경우가 있습니다.
예를 들어 선택된 부서의 직원을 조회할 때와 같은 경우입니다.
SELECT
DEPT_NO
, EMP_NO
, EMP_NO
FROM
TB_DEPT A
, TB_EMP B
WHERE A.DEPT_NO = B.DEPT_NO
AND A.DEPT_NO IN ('0001', '0002', '0003')
위의 DEPT_NO(부서번호)와 같이 조건에 따라 동적으로 파라메터를 생성해야 하는 경우
<iterate> 태그를 사용하면 쉽게 파라메터를 적용할 수 있습니다.
서비스 단에서 map객체로 부서번호 배열(DEPT_NO_ARR)을 넣어준 후 SqlMap에 아래와 같이 적용시켜 주면 됩니다.
SELECT
DEPT_NO
, EMP_NO
, EMP_NO
FROM
TB_DEPT A
, TB_EMP B
WHERE A.DEPT_NO = B.DEPT_NO
AND A.DEPT_NO IN
<iterate property="DEPT_NO_ARR" open="(" close=")" conjunction=",">
#DEPT_NO_ARR[]#
</iterate>