公司專案中要做乙個excel匯入會員資訊的功能要求每條記錄的會員郵箱不能重複,但是資料庫中有2w條記錄,想到每次匯入的時候可能都要去資料庫中查,匯入的速度會很慢,我就想怎麼才能優化。
我的處理方法是:
1. 先做郵箱校驗
把excel裡的所有郵箱儲存到一張臨時表中,臨時的字段含有(id,郵箱,郵箱所在的行)先查出excel資料中
郵箱有沒重複sql語句如下:
select count(*) as count from tmpexcel group by email
如果關聯的記錄小於總記錄數,說明excel裡郵箱重了
2. 讀取出excel裡的每條記錄 再用郵箱與會員表關聯。
如果關聯出的結果返回的list為空,就說明郵箱沒有重複,如果返回的結構不為空,就說明郵箱重複了.
最後可以提示第幾行郵箱重了。
程式去校驗郵箱的話,需要要得到乙個郵箱就去資料庫中查詢一次有沒有,這樣效率比較低。上面這種方法只是把校驗交給資料庫,只需要查2次就搞定了。
POI解析Excel優化二
公司專案中要做乙個excel匯入會員資訊的功能要求每條記錄的會員郵箱不能重複,但是資料庫中有2w條記錄,想到每次匯入的時候可能都要去資料庫中查,匯入的速度會很慢,我就想怎麼才能優化。我的處理方法是 1.先做郵箱校驗 把excel裡的所有郵箱儲存到一張臨時表中,臨時的字段含有 id,郵箱,郵箱所在的行...
使用POI解析Excel
最近在寫專案,涉及到批量新增學生資訊,通過網上查了眾多資料,終於通過上傳乙個excel檔案的方式加以解決,現特此記錄下來,以備以後檢視。解析的核心 suppresswarnings static access public static listreadxls inputstream inputst...
Excel 的處理一 POI 解析excel
03與07版本excel區別 一 字尾不同 前者.xls,後者.xslx 二 前者行數有最大行數限制 最大65536行 後者無行數限制 1.1 簡單方式 載入檔案路徑 獲取流 new fileinputstream filepath 再把流放入到工作簿裡,此時inputstream物件就讀取到工作簿...