基于easyexcel+线程池+批量插入实现导入功能

背景

新旧项目数据迁移,注意点:避免OOM以及低性能导致的耗时增加。

技术选型

PS:单个excel,单sheet页 是104W条,256列,上限32000个字节傻瓜式换算是1G左右单个文件

文件往往会是大文件:选择easyexcel,(相较于POI对于内存占用较少,easyexcel采用的是逐行读取)

(链接:

专家答疑1:https://easyexcel.opensource.alibaba.com/expert/question-history-14984

常见问题:读Excel | Easy Excel 官网

)

为了提高效率,可以手工将大数据打断复制分散到多个sheet页多,就可以使用多线程来进行读取,因此采用ExecutorService。

批量写入:选择mybatis/mybatils-plus均可。

具体实现

依赖

<dependencies>
    <!-- EasyExcel -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>easyexcel</artifactId>
    <version>最新的版本号</version></dependency>
    <!-- 数据库连接和线程池 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-ipa</artifactId>
    </dependency>
</dependencies>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值