<select id="selectAaboo" resultType="hashmap" parameterType="hashmap">
SELECT name, age
FROM AABOO
WHERE age = #{age}
<if test="jobList!=null and jobList.size!=0">
AND job IN
<foreach collection="jobList" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</select>
5번 라인 : jobList.size!=0
7번 라인 :
– collection : ArrayList 형
– item : ArrayList의 index 순서에 있는 데이터
– index : ArrayList의 순서(0부터 1씩 증가)
– open : foreach문으로 출력되는 모든 문자 결합 앞에 “(” 붙여준다.
– close : foreach문으로 출력되는 모든 문자 결합 앞에 “)” 붙여준다.
– separator : 출력할 때마다 “,” 문자를 붙여준다
또 다른 예시
<insert id="insertCfSettleHistory">
INSERT INTO CF_SETTLEHISTORY
(FEEMON, FICODE, BILL_ITM_GROUP, SUBMIT_CD, SUBMIT_SNO
, ROWCODE, ROWNAME, COLCODE, COLNAME, BFDATA
, AFDATA, MEMO, USERID, UPDATED, UPDATESTAMP)
<foreach collection="param.historyList" item="item" index="index" separator="UNION ALL">
SELECT
#{param.feemon}, #{param.ficode}, null, #{item.pageID}, #{index}
, #{item.row}, #{item.rowName}, #{item.col}, #{item.colName}, #{item.orgValue}
, #{item.chgValue}, #{item.memo}, #{param.session.userid}, SYSDATE, SYSTIMESTAMP
FROM DUAL
</foreach>
</insert>