方案有多种,这里我就只列举下个人用的比较多的方法
批量插入
dao
public int batchInsert(List<User> userList);
xml
<insert id="batchInsert" parameterType="com.demo.core.entity.User" useGeneratedKeys="true" keyProperty="userId">
insert into t_user(user_id, user_name,birthday) values
<foreach item="item" index="index" collection="list" separator=",">
(#{item.userId},#{item.userName},#{birthday})
</foreach>
</insert>
批量更改
dao
public int batchUpdate(@Param("userList")List<User> userList);
xml
<update id="batchUpdate" parameterType="java.util.List">
update t_user set user_name =
<foreach collection="userList" item="item" index="index"
separator=" " open="case user_id" close="end">
when #{item.userId} then #{item.userName}
</foreach>
,birthday =
<foreach collection="userList" item="item" index="index"
separator=" " open="case user_id" close="end">
when #{item.userId} then #{item.birthday}
</foreach>
where user_id in
<foreach collection="userList" item="item" index="index"
separator="," open="(" close=")">
#{item.userId}
</foreach>
</update>