ssm框架实现批量插入操作和更新操作
1.插入操作
<insert id="insertList" parameterType="java.util.List">
insert into movie
( movie_id,movie_score,movie_name,type,box,movie_director,movie_actor,movie_area,
movie_time,img)
values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.movieId}, #{item.movieScore}, #{item.movieName}, #{item.type}, #{item.box}, #{item.movieDirector},
#{item.movieActor}, #{item.movieArea}, #{item.movieTime},#{item.img}
)
</foreach>
</insert>
2.更新操作
<update id="updateList" parameterType="java.util.List">
UPDATE actor
<set>
actor_weight=
<foreach collection="list" item="bean" index="index" separator=" "
open="case actor_id" close="end">
when #{bean.actorId} then
#{bean.actorWeight}
</foreach>
</set>
</update>
注:open的case对应的actor_id是数据库里的字段
多字段批量更新:翻译成可执行的sql语句为:
UPDATE table_name
SET people_id = CASE id
WHEN 3 THEN ‘田田1’
WHEN 5 THEN ‘果果1’
END,
roadgrid_id = CASE id
WHEN 3 THEN ‘tiantian1’
WHEN 5 THEN ‘guoguo1’
END,
type = CASE id
WHEN 3 THEN ‘田田1’
WHEN 5 THEN ‘果果1’
END,
units_id = CASE id
WHEN 3 THEN ‘田田1’
WHEN 5 THEN ‘果果1’
END
WHERE id IN (3,5)
<update id="updateBatch" parameterType="list">
update course
<trim prefix="set" suffixOverrides=",">
// 表对应people_id字段,pojo对应peopleId字段
<trim prefix="people_id =case" suffix="end,">
<foreach collection="list" item="i" index="index">
<if test="i.peopleId!=null">
when id=#{i.id} then #{i.peopleId}
</if>
</foreach>
</trim>
// 表对应roadgrid_id字段,pojo对应roadgridid字段
<trim prefix=" roadgrid_id =case" suffix="end,">
<foreach collection="list" item="i" index="index">
<if test="i.roadgridid!=null">
when id=#{i.id} then #{i.roadgridid}
</if>
</foreach>
</trim>
// 表对应type字段,pojo对应type字段
<trim prefix="type =case" suffix="end," >
<foreach collection="list" item="i" index="index">
<if test="i.type!=null">
when id=#{i.id} then #{i.type}
</if>
</foreach>
</trim>
// 表对应units_id字段,pojo对应unitsid字段
<trim prefix="units_id =case" suffix="end," >
<foreach collection="list" item="i" index="index">
<if test="i.unitsid!=null">
when id=#{i.id} then #{i.unitsid}
</if>
</foreach>
</trim>
</trim>
// 表对应id字段,pojo对应id字段
where
<foreach collection="list" separator="or" item="i" index="index" >
id=#{i.id}
</foreach>
</update>