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语句插入的话,效率比较快,使用提供的方法的话,有可能是一条一条插入,比较慢

相关推荐
Larcher2 小时前
React Router 不只是页面跳转:从 SPA 路由到权限守卫的完整实践
javascript·后端
Larcher2 小时前
大模型为什么每次回答都不一样?一文搞懂 Temperature、Top K 与 Top P
javascript·后端
LucianaiB4 小时前
毕业老学长给我留的最后一句话是:“AI 写的,别挂我名。” 我直接 神(Seed Evolving) 来!助我!
后端
IvanCodes4 小时前
RAG 实战教程(一):RAG 工作原理与完整流程——分片、索引、召回、重排和生成
人工智能·后端·agent
·薯条大王5 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
CodeSheep5 小时前
稚晖君公司人事大变动,来了!
前端·后端·程序员
小满zs6 小时前
Go语言第八章(函数)
后端·go
stark张宇7 小时前
实战Go高级特性:Context超时控制、defer资源回收与Channel通信的关键避坑点
后端·go
ZJH__GO8 小时前
网络编程v4pro--实现聊天室文件传输功能
java·服务器·网络·计算机网络
程序员黑豆8 小时前
Windows 系统 Java 环境变量配置全攻略:解决“不是内部或外部命令”
java·前端·ai编程