1、foreach元素的属性主要有item,index,collection,open,separator,close。
item:集合中元素迭代时的别名,该参数为必选。
index:在list和数组中,index是元素的序号,在map中,index是元素的key,该参数可选
open:foreach代码的开始符号,一般是(和close=")“合用。常用在in(),values()时。该参数可选
separator:分隔符,表示迭代时每个元素之间以什么分隔
close: foreach代码的关闭符号,一般是)和open=”("合用。常用在in(),values()时。该参数可选。
collection: collection属性的值有三个分别是list、array、map三种,分别对应的参数类型为:List、数组、map集合。
注:foreach标签主要用于构建in条件,可在sql中对集合进行迭代。也常用到批量删除、添加等操作中。
2.代码
(1)构建in条件
<select id="findByIds" resultMap="personMap">
select * from t_person where f_id in
<foreach collection="ids" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</select>
(2)批量添加
<insert id="insertEventBase" >
insert into news_event_base(eventId,enodebId,cellId,eci,scene,enodebName,sectorName,createDate) values
<foreach collection="eventBaseList" item="eventBase" index="index" separator=",">
(#{eventBase.eventId},#{eventBase.enodebId},#{eventBase.cellId},#{eventBase.eci},#{eventBase.scene},#{eventBase.enodebName},#{eventBase.sectorName},#{eventBase.createDate})
</foreach>
</insert>