批量insert
@Mapper
public interface UserMapper extends BaseMapper<User> {
// 自定义批量插入方法
void insertBatch(List<User> userList);
}
<mapper namespace="com.example.mapper.UserMapper">
<insert id="insertBatch" parameterType="java.util.List">
INSERT INTO user (id, name, age) VALUES
<foreach collection="list" item="item" separator=",">
(#{item.id}, #{item.name}, #{item.age})
</foreach>
</insert>
</mapper>
批量update
@Mapper
public interface UserMapper extends BaseMapper<User> {
// 自定义批量更新方法
void updateBatch(List<User> userList);
}
<mapper namespace="com.example.mapper.UserMapper">
<update id="updateBatch" parameterType="java.util.List">
<foreach collection="list" item="item" separator=";">
UPDATE user SET name = #{item.name}, age = #{item.age} WHERE id = #{item.id}
</foreach>
</update>
</mapper>
注意:批处理操作通常在一个事务中执行,因此确保方法调用层上存在事务管理(例如使用@Transactional
注解)以保证批处理操作的一致性和原子性。