首页 > 数据库技术 > 详细

我的多线程————读取百万条Excel数据,写入到数据库

时间:2018-03-28 16:40:33      阅读:677      评论:0      收藏:0      [点我收藏+]
问题:如何高效的读取百万条Excel数据到数据库?

问题拆解:1.如何读取百万条Excel数据?poi用户模式会出现内存溢出啊

               2.读取到的Excel数据存储在哪里?100万条数据放在内存不是一件很恐怖的事情吗?

               3.如何高效的将数据写入到数据库?多线程如何使用?

方案1:poi的命令触发模式解决读取的时候内存溢出问题、读取到的数据放到内存中、内存中通过forkjoin工具任务拆解,加入到队列

深入思考:1》每次都要等待读取完数据,才能进行其他操作,读取本身就花费了9秒时间 2》100万条数据很消耗内存啊 

方案2:分2个线程:线程A和线程B,线程A负责读取Excel数据,线程B负责写入到数据库,线程A和线程B如何配合工作呢?多线程的生产消费者模式

最终核心代码附上:

poi工具类代码:

技术分享图片


读请求使用的是poi的命令模式,读取只负责向list中添加数据,无上限

技术分享图片生产消费模式的核心代码



技术分享图片

使用线程的工厂模式,将写请求加入到队列


技术分享图片

队列中,不断拿取写请求,执行


技术分享图片

写请求最终的执行方法



温馨提示:数据库的操作可以使用批处理


我的多线程————读取百万条Excel数据,写入到数据库

原文:http://blog.51cto.com/13496382/2092048

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!