MyBatis原生批量插入的坑与解决方案!(3)

简介: MyBatis原生批量插入的坑与解决方案!(3)

原生批量插入分片实现


那接下来,就是改造我们的 MyBatis 批量插入代码了,具体实现如下:


@Test
void saveBatchByNativePartition() {
    long stime = System.currentTimeMillis(); // 统计开始时间
    List<User> list = new ArrayList<>();
    // 构建插入数据
    for (int i = 0; i < MAXCOUNT; i++) {
        User user = new User();
        user.setName("test:" + i);
        user.setPassword("123456");
        list.add(user);
    }
    // 分片批量插入
    int count = (int) Math.ceil(MAXCOUNT / 1000.0); // 分为 n 份,每份 1000 条
    List<List<User>> listPartition = Lists.partition(list, count);
    // 分片批量插入
    for (List<User> item : listPartition) {
        userService.saveBatchByNative(item);
    }
    long etime = System.currentTimeMillis(); // 统计结束时间
    System.out.println("执行时间:" + (etime - stime));
}


执行以上程序,最终的执行结果如下:


微信图片_20220120232447.jpg


从上图可以看出,之前批量插入时的异常报错不见了,并且此实现方式的执行效率竟比 MyBatis Plus 的批量插入的执行效率要高,MyBatis Plus 批量插入 10W 条数据的执行时间如下:


微信图片_20220120232502.jpg

相关文章
|
6月前
|
前端开发 Java 关系型数据库
【Mybatis-Plus】mybatisplus更新时,实体字段为空,数据库不更新的解决方案
【Mybatis-Plus】mybatisplus更新时,实体字段为空,数据库不更新的解决方案
256 0
|
16天前
|
SQL Java 数据库连接
【mybatis】第一篇,Springboot中使用插件PageHelper不生效解决方案
【mybatis】第一篇,Springboot中使用插件PageHelper不生效解决方案
|
1月前
|
SQL 存储 Kubernetes
Seata常见问题之mybatisplus的批量插入方法报SQL错误如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
26 0
|
3月前
|
存储 Java 数据库连接
MyBatis Plus中的批量插入:通过开启rewriteBatchedStatements=true
MyBatis Plus中的批量插入:通过开启rewriteBatchedStatements=true
135 0
|
4月前
|
Java 数据库连接 mybatis
mybatis 批量插入
mybatis 批量插入
26 0
|
9月前
|
SQL Java 数据库连接
MyBatis痛点验证,使用 foreach 批量插入慢?
MyBatis痛点验证,使用 foreach 批量插入慢?
174 0
|
6月前
|
Java 关系型数据库 MySQL
【MySQL用法】mybatis框架中,查询出来的实体类结果集中的某一个字段无法映射到实体类中的解决方案
【MySQL用法】mybatis框架中,查询出来的实体类结果集中的某一个字段无法映射到实体类中的解决方案
38 0
|
8月前
|
SQL Java 数据库连接
简单学会MyBatis原生API&注解
简单学会MyBatis原生API&注解
75 0
|
9月前
|
SQL Java 数据库连接
如何使用Mybatis实现批量插入 ?
如何使用Mybatis实现批量插入 ?
49 0
|
9月前
|
XML Java 数据库连接
使用Mybatis时mybatis-config.xml配置中报错“configuration“ 的内容必须匹配 (...)的解决方案
使用Mybatis时mybatis-config.xml配置中报错“configuration“ 的内容必须匹配 (...)的解决方案
66 0