[發明專利]一種Web端導入excel與存數據庫并反饋到前端的方法在審
| 申請號: | 201710154409.2 | 申請日: | 2017-03-15 |
| 公開(公告)號: | CN106991136A | 公開(公告)日: | 2017-07-28 |
| 發明(設計)人: | 閆建旭 | 申請(專利權)人: | 北京盛世光明軟件股份有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京國坤專利代理事務所(普通合伙)11491 | 代理人: | 姜彥 |
| 地址: | 100085 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 web 導入 excel 數據庫 反饋 前端 方法 | ||
技術領域
本發明涉及一種導入與存數據庫并反饋到前端的方法,具體為一種Web端導入excel與存數據庫并反饋到前端的方法,屬于數據處理方法應用技術領域。
背景技術
Web端導入excel,無論web開發架構是net、java、php,都可以實現客戶端瀏覽excel文件,并上傳到服務器,服務器經過業務邏輯處理,寫入到數據庫(oracle、sqlserver、mysql),然后給用戶一個反饋。但是如果excel文件內容較多,寫入數據庫非常的慢,客戶需要等待幾分鐘、幾十分鐘甚至更長時間來等待處理結果,現有技術無法解決這一問題。
現有的解決方案對小文件的處理是可以滿足要求的,但是對于大文件,主要瓶頸在導入數據庫的操作上。一般web程序通過接口連接數據庫,需要先打開數據庫,執行寫入操作,然后關閉數據庫,數據量大,數據庫寫入非常慢,寫數據庫成為主要瓶頸,傳統技術始終為單向模式,即:請求->上傳->處理->寫庫->反饋結果,必須等待上一環節處理完成后,才能進入到下一環節,對于大文件的寫數據庫是一個非常耗時的操作,無法在短時間內容響應用戶操作,因此,針對上述問題提出一種Web端導入excel與存數據庫并反饋到前端的方法。
發明內容
本發明的目的就在于為了解決上述問題而提供一種Web端導入excel與存數據庫并反饋到前端的方法。
本發明通過以下技術方案來實現上述目的,一種Web端導入excel與存數據庫并反饋到前端的方法,其方法包括如下步驟:
步驟A、客戶端選擇大文件上傳;
步驟B、服務端獲取到步驟A上傳的大文件后讀入內存,通過在后臺打開一個獨立的線程處理文件導入的問題,在打開獨立線程的同時,給客戶反饋一個結果,告訴用戶,后臺已經處理了上傳的數據;
步驟C、獨立線程將步驟A上傳的文件導入到數據庫;
步驟D、當數據沒有完全導入到數據庫,遇到用戶查詢時,將導入的結果放入服務端一個容器中,前端請求查詢時,同時查詢數據庫以及內存數據庫,合并后返給前端;
步驟E、等獨立線程處理完導入操作后,清空內存數據庫。
優選的,所述步驟B中,獨立線程沒處理完時,而前端客戶已經進行其他操作,不必等待全部寫完數據庫。
優選的,步驟C中快速導入數據庫的過程為:
1)oracle數據庫按照格式生成數據庫控制文件;
2)步驟1)中的數據庫控制文件生成后,在服務端啟動命令執行控制文件導入到數據庫;
Mysql數據庫按照格式生成loadfile文件,通過loadfile命令導入,sqlserver通過bulk insert命令將文本文件導入數據庫。
本發明的有益效果是:本發明中的快速導入數據庫的過程為:oracle數據庫按照格式生成數據庫控制文件;生成后,在服務端啟動命令執行控制文件導入到數據庫;Mysql數據庫按照格式生成loadfile文件,通過loadfile命令導入,sqlserver通過bulk insert命令將文本文件導入數據庫。這種方式比直接insert效率快很多倍;本發明采用在web處理中開啟多線程處理寫庫操作,能夠快速給用戶反饋結果,結合內存數據庫解決查詢數據不全的問題,大文件寫入操作不再采用web中調取數據庫的接口,不用insert,而是采用系統級接口,直接將文件批量導入數據庫,大大提升了寫數據庫的速度,大幅提升用戶體驗度,用戶不必等待很長時間既能得到結果,實際寫數據庫時間大幅縮短。
附圖說明
圖1為本發明的流程圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
實施例一:
如圖1所示,一種Web端導入excel與存數據庫并反饋到前端的方法,其方法包括如下步驟:
步驟A、客戶端選擇大文件上傳;
步驟B、服務端獲取到步驟A上傳的大文件后讀入內存,通過在后臺打開一個獨立的線程處理文件導入的問題,在打開獨立線程的同時,給客戶反饋一個結果,告訴用戶,后臺已經處理了上傳的數據;
其中,獨立線程沒處理完時,而前端客戶已經進行其他操作,不必等待全部寫完數據庫;
步驟C、獨立線程將步驟A上傳的文件導入到數據庫;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京盛世光明軟件股份有限公司,未經北京盛世光明軟件股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710154409.2/2.html,轉載請聲明來源鉆瓜專利網。





