1.批量插入操作: 使用foreach标签
<insert id="insertBatch">
<selectKey keyProperty="personId" order="AFTER" resultType="java.lang.Integer">
select LAST_INSERT_ID()
</selectKey>
insert into person1 (person_id, name, gender, person_addr, birthday)
values
<foreach collection="pList" separator="," item="person">
(#{person.personId}, #{person.name}, #{person.gender}, #{person.personAddr}, #{person.birthday})
</foreach>
</insert>
说明:该方法只适用于mysql数据库,oracle不适用。
注意:java后台传递的参数是map
//批量的操作,使用集合和数组都可以
/*List list = new ArrayList();
list.add(7);
list.add(8);
list.add(9);*/
Integer [] ids = {13,14,15};
Map<String, Object> map = new HashMap<String, Object>();
map.put("ids", ids);
2.批量删除操作:
<delete id="deleteBatch" >
delete from person1 where person_id in
<foreach collection="ids" open="(" close=")" item="personId" index="pIndex" separator=",">
#{personId}
</foreach>
</delete>
3.foreach标签使用说明:
如果使用foreach就不需要parameterType
collection:map中集合的key,可以代替parameterType
open:foreach中组合字符串的时候以某种字符开始
close: foreach中组合字符串的时候以某种字符结束
item:集合中的每一项,使用的时候语法#{}
index:循环的索引
separator:集合中每一项以某种字符分隔