Foreach包含的属性有:collection、index、open、close、item、separator。
index:循环过程中产生的索引值。
open:Foreach以什么开始。
close:Froeach以什么结束。
item:Foreach循环过程中产生的对象。
separator:Froeach以什么作为变量间的分割。
collection:代表传入的参数,有以下几种常见用法:
1.传入List集合时:collection=“list”。
2.传入Array数组时:collection="array"。
如:serviceImpl中这样写:
@Override
public void delete(Serializable[] ids) {
contractDao.delete(ids);
}
mapper中这样写:
<!-- 批量删除 -->
<delete id="delete" parameterType="string">
delete from contract_c where CONTRACT_ID in
<foreach collection="array" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
3.传入map对象时:将你放在map中的那个数组或者list的引用对象作为collection的值。
如:serviceImpl这样写:
@Override
public void submit(Serializable[] ids) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("state", "1"); //上报状态
map.put("ids", ids);
contractDao.updateStatus(map);
}
mapper中这样写:
<!-- 修改状态 -->
<update id="updateStatus" parameterType="map">
update contract_c set state = #{state} where CONTRACT_ID in
<foreach collection="ids" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</update>