1.批量更新
import org.apache.ibatis.annotations.Param;
int batchUpdateByKey(@Param("list") List<Apple> list);
<update id="batchUpdateByKey" parameterType="java.util.List">
UPDATE t_apple
<trim prefix="set" suffixOverrides=",">
<trim prefix="name = case" suffix="end,">
<foreach collection="list" item="item" index="index">
<if test="item.name != null">
when id = #{item.id} then #{item.name}
</if>
</foreach>
</trim>
<trim prefix="color = case" suffix="end,">
<foreach collection="list" item="item" index="index">
<if test="item.color != null">
when id = #{item.id} then #{item.color}
</if>
</foreach>
</trim>
<trim prefix="weight = case" suffix="end,">
<foreach collection="list" item="item" index="index">
<if test="item.weight != null and item.modifier !=''">
when id = #{item.id} then #{item.weight}
</if>
</foreach>
</trim>
</trim>
where
id in
<foreach collection="list" item="item" index="index" separator="," open="(" close=")">
#{item.id}
</foreach>
</update>
2.批量插入
import org.apache.ibatis.annotations.Param;
Integer batchSave(@Param("list") List<Apple> appleList);
<insert id="batchSave" parameterType="com.test.Apple" >
insert into t_apple (id, name, color,weight)
values
<foreach collection="list" item="item" index="index" separator="," >
(#{item.id,jdbcType=INTEGER}, #{item.name,jdbcType=VARCHAR}, #{item.color,jdbcType=VARCHAR},#{item.weight,jdbcType=VARCHAR})
</foreach>
</insert>