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>
'Dev > iBatis' 카테고리의 다른 글
[iBatis] 쿼리문 재사용 include (0) | 2019.05.10 |
---|---|
[iBatis] insert(), update(), delete() 리턴값 (0) | 2019.05.10 |