프로그래밍/자바

iBatis에서 iterate 쓰기 : 여러개의 or이나 in 안에 여러 개의 데이터 넣기

panpro 2010. 7. 21. 12:56
자바에서는 이렇게 한다.

        ArrayList<String> arCapacity = new ArrayList<String>();
       
        String[] arResult = strCapacity.trim().split(",");
       
        // 검색어를 목록에 담는다.
        for (int i = 0; i < arResult.length; i++)       
            arCapacity.add(arResult[i]);
       
        List<MemberCapacityItemVO> list;
       
        try
        {           
            list = m_client.queryForList("searchMemberCapacity", arCapacity);
        }
        catch(SQLException ex)
        {
            ex.printStackTrace();
            return "";
        }

이걸 iBatis XML에서는
<select id="search" parameterClass="java.util.List" resultClass="ItemVO">
        select
            member.EMP_NO
        from
            member
        where
            and member.CODE in
            <iterate open="(" conjunction="," close=")">
                #arCapacity[]#
            </iterate>
    </select>

이걸로 끝이다. 와 실로 놀랍지 않은가.