본문 바로가기

Dev/iBatis

[iBatis] iterate 동적 파라메터

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