Mybatis实现批量插入

前言

在使用Mybatis或者Mybatis Plus框架开发的时候,要实现批量插入操作,毕竟一条一条插入,数据量庞大的时候,很慢

Mybatis实现批量插入

定义实体类

kotlin 复制代码
@Data
public class User {
    /**
     * 
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 
     */
    private String name;
}

定义dao层

csharp 复制代码
public interface UserMapper extends BaseMapper<User> {


    void insertBatch(List<User> list);
}

maper.xml

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.example.demomybatisplus.mapper.UserMapper">

    <resultMap id="BaseResultMap" type="org.example.demomybatisplus.model.User">
            <id property="id" column="id" />
            <result property="name" column="name" />
    </resultMap>

    <sql id="Base_Column_List">
        id,name
    </sql>

    <insert id="insertBatch" parameterType="java.util.List">
        INSERT INTO user
        (id, name)
        VALUES
        <foreach collection="list" item="item" separator=",">
            (#{item.id}, #{item.name})
        </foreach>
    </insert>

</mapper>

总结

这样使用sql语句插入的话,效率比较快,使用提供的方法的话,有可能是一条一条插入,比较慢

相关推荐
西索斯coding5 小时前
gpt-image-2.5-sunburst 和 gemini-3.1-flash-image 差多少?60 组项目素材的成功成本评测框架
java·linux·gpt·ai
明月_清风6 小时前
用自然语言操控真机:Google Artemis 移动端 AI Agent 上手与实践
人工智能·后端
怪我冷i6 小时前
Rust 的impl语法详解
开发语言·后端·rust
wuminyu6 小时前
Java字节码学习总结:字节码如何加载、解析和执行
java·linux·c语言·jvm·c++
Flynn Liang6 小时前
大模型怎么自己调函数?Spring AI 2.0 Tool Calling 自动循环原理 + 完整时序图
java·人工智能·spring·agent·函数调用·springai·toolcalling
我就是全世界6 小时前
OpenCode Go 套餐划算吗:先看你用哪个模型
开发语言·后端·golang
乌暮7 小时前
请求进门先安检:Spring 拦截器与统一功能实战指南
java·开发语言·后端·学习·spring
学长毕设7 小时前
基于SpringBoot的烘焙商品商品系统-附源码
java·spring boot·后端
付威20238 小时前
Durable Execution 怎样设计:从运行记录到中断恢复
后端
金銀銅鐵8 小时前
[Java] 用纯 Swing 做一个《論語·學而》阅读器
java·ai编程·交互设计