搜尋

首頁  >  問答  >  主體

java - poi导入大量数据如何处理?

我用的是poi框架去解析excel数据,大概有十万条。
我想先通过一行一行地读取,然后保存在一个集合里面list。
解析完成了,这个list就包含了十万个对象的信息了。
然后,再把这个list导入 数据库。

我的困惑是:十万条,一条有二十个字段,一下子保存在集合中,会不会内存不够,或者其他事故呢?如何存在,如何改变上面的思路,减少事故发生。

比如,我可不可以边解析边导入,导入后就删除list的呢?这个过程怎么实现?给个思路。

天蓬老师天蓬老师2768 天前373

全部回覆(2)我來回復

  • PHP中文网

    PHP中文网2017-04-18 09:42:56

    可以試試邊讀邊寫的辦法,就是讀取從POI讀取一行,然後就寫入資料到資料庫提交。當資料從POI讀取完了,資料庫寫入也完成了。這個辦法缺陷就是萬一資料寫入失敗,程式中止的話,你需要從中止的行重新開始讀取並寫入,所以可能需要記錄下中止的行數,以便失敗的時候繼續上次的進度,不用重頭開始。

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-18 09:42:56

    @一書生VOID 的方法也可以改進成一次讀取幾百行或千行(數字看你內存多少而定),然後寫入,那麼內存佔用少,同時也可以減少數據庫操作的次數

    回覆
    0
  • 取消回覆