1.批量插入数据
<insert id="batchInsert" parameterType="java.util.ArrayList">
insert into tableName
(
id,
name,
age
)
values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.id},
#{item.name},
#{item.age}
)
</foreach>
</insert>
2.批量更新数据
<update id="batchUpdate" parameterType="java.util.ArrayList">
<foreach collection="list" item="item" index="index" open="" close="" separator=";">
update tableName
<trim prefix="set" suffixOverrides=",">
<if test="item.name!= null">name= #{item.name},</if>
<if test="item.age!= null">age= #{item.age},</if>
</trim>
where id= #{item.id}
</foreach>
</update>
3.批量更新数据(id不同,更新的字段内容相同)
int updateByIds(Data data);
其Data对象包含一个List和2个参数,代码如下:
public class Data{
private List<String> ids;
private String name;
private String age;
}
<update id="updateByIds" parameterType="com.example.bean.Data">
update tableName
set name= #{name,jdbcType=VARCHAR},
age= #{age,jdbcType=VARCHAR}
where id in
<foreach collection="list" item="item" open="(" separator="," close=")" >
#{item}
</foreach>
</update>
4.批量删除数据(根据id)
int deleteByIds(@org.apache.ibatis.annotations.Param("ids") List<String> ids);
<delete id="deleteByIds" parameterType="java.util.ArrayList">
update tableName
where id in
<foreach collection="list" item="item" open="(" separator="," close=")" >
#{item}
</foreach>
</delete>