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

相关推荐
songroom1 小时前
Kimi K3:Rust封装XTP接口详细教程实践
开发语言·后端·rust
kebeiovo2 小时前
游戏服务端开发:Actor模型详解(Go语言)
开发语言·后端·golang
红烧大青虫2 小时前
setInterval 倒计时实现:60s 验证码发送逻辑
后端·华为·harmonyos·鸿蒙系统
null_172 小时前
IntelliJ IDEA 极致流畅配置方案:Ultra 9 285K + 64GB 内存实测
java·ide·intellij-idea
Herbert_hwt2 小时前
建立Java程序开发
java·开发语言
好好沉淀2 小时前
@ExcelIgnoreUnannotated 和 @AutoMapper 详解
java
小村儿3 小时前
连载14-实战篇--一个半月,我一个人和 Claude Code 搭出一套数字人工程
前端·后端·ai编程
你驴我3 小时前
WhatsApp 多账号下消息已读回执的实时聚合与推送实践
后端·python
用户208046804563 小时前
Python3 注释编写完全指南:从基础规范到高效实践
后端
愚公移码3 小时前
蓝凌EKP18产品:流程虚拟机(PVM)
java·开发语言·前端