Excel多线程导入数据库

文章目录

Excel多线程导入数据库

书接上文 Excel20w数据5s导入

1. CountDownLatch

CountDownLatch 维护了一个计数器,初始值为指定的数量。当一个或多个线程调用 await() 方法时,它们会被阻塞,直到计数器的值变为 0。而其他线程可以通过调用 countDown() 方法来减小计数器的值,当计数器的值变为 0 时,所有处于等待状态的线程都会被唤醒。

需要注意的是,CountDownLatch 是一次性的,即计数器的值减为 0 后就不能再重置成其他值。

2.多线程导入数据库

dao

java 复制代码
    @Insert("insert into excel(id,name,age) values (#{id},#{name},#{age})")
    void insert(Man man);

service

java 复制代码
 public String add5() {
        ExcelReader reader = ExcelUtil.getReader(FileUtil.file("C:\\Users\\26896\\Desktop\\test.xlsx"), "sheet1");
        long startTime1 = System.currentTimeMillis();
        try {
            CountDownLatch latch = new CountDownLatch(200);
            int batch = 1000;
            for (int i = 1; i <= 200000; i += batch) {
                final int start = i; // 将循环变量赋值给新变量 start
                final int end = i + batch - 1; // 计算结束位置
                executor.submit(() -> {
                    List<Man> read = reader.read(0, start, end, Man.class);
                    excelDao.add(read);
                    latch.countDown();
                });
            }
            latch.await();
            long startTime = System.currentTimeMillis();
            System.out.println("最终的结果为:" + (startTime - startTime1));
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            executor.shutdown();
        }
        return null;
    }

测试只需要在测试类中注入service调用方法即可

测试结果 这个结果包括从read读数据所以相对而言可能慢一点

相关推荐
龙仔7252 小时前
人大金仓OS_Core数据库自动备份实施笔记(银河麒麟Linux)
linux·数据库·笔记·备份·人大金仓
sunxr.2272 小时前
Mysql-----最后一次作业
数据库·mysql
普通网友3 小时前
Python FastAPI 异步数据库管理
数据库·fastapi
晓子文集3 小时前
Tushare接口文档:期货合约信息表(fut_basic)
大数据·数据库·金融·金融数据·量化投资
三言老师3 小时前
CentOS7.9:Redis‑Cluster集群部署结构化实战教程
linux·运维·服务器·数据库
旺仔学长 哈哈4 小时前
Spring Boot 智能停车场管理系统---附源码+数据库文档
数据库·spring boot·后端·智能停车场
ClickHouseDB4 小时前
ClickHouse托管Postgres:OLTP+OLAP,新能力解锁最佳数据平台
java·前端·数据库
数智化管理手记5 小时前
主数据重复、错漏频发?一站式主数据管理平台如何落地?
大数据·运维·数据库·人工智能·数据挖掘
吴声子夜歌5 小时前
MongoDB 4.2——选择片键
数据库·mongodb
吴声子夜歌5 小时前
MongoDB 4.2——安全介绍
数据库·安全·mongodb