專利名稱:數(shù)據(jù)導出方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別是涉及一種數(shù)據(jù)導出方法及裝置。
背景技術(shù):
在現(xiàn)有技術(shù)中,提供了一種可擴展性高的數(shù)據(jù)導出導入的方法和裝置。具體技術(shù)方案如下:預先設(shè)置一個腳本文件,判斷腳本文件是否配置正確,并判斷腳本中的表結(jié)構(gòu)是否存在,當腳本文件正確并且指定的表存在,讀取表結(jié)構(gòu)信息,從數(shù)據(jù)庫所指定的表中導出數(shù)據(jù),將導出的數(shù)據(jù)和指定的相關(guān)表信息部分或全部寫入數(shù)據(jù)文件中,可實現(xiàn)不同類型的數(shù)據(jù)庫之間的數(shù)據(jù)轉(zhuǎn)換。在現(xiàn)有技術(shù)中,腳本文件的解析需要專門的腳本解析程序,靈活性較差,不支持多表關(guān)聯(lián)的數(shù)據(jù)導出方式,不支持多種格式的數(shù)據(jù)導出,也不適合業(yè)務(wù)場景比較復雜的領(lǐng)域。
發(fā)明內(nèi)容
本發(fā)明提供一種數(shù)據(jù)導出方法及裝置,以解決現(xiàn)有技術(shù)中的上述問題。本發(fā)明提供一種數(shù)據(jù)導出方法,包括:對配置文件中的配置信息進行設(shè)置,其中,配置信息包括:需要導出數(shù)據(jù)的數(shù)據(jù)庫信息、數(shù)據(jù)庫的表結(jié)構(gòu)信息、數(shù)據(jù)導出格式信息、以及數(shù)據(jù)轉(zhuǎn)換信息;在系統(tǒng)啟動時,讀取配置文件,將配置文件中的配置信息解析成對象模型存儲在內(nèi)存中,并根據(jù)用戶選擇的需要導出的數(shù)據(jù)和過濾條件、以及對象模型中的表結(jié)構(gòu)信息生成數(shù)據(jù)庫可執(zhí)行語句;根據(jù)數(shù)據(jù)庫可執(zhí)行語句從數(shù)據(jù)庫中讀取需要導出的數(shù)據(jù),并根據(jù)對象模型中的數(shù)據(jù)轉(zhuǎn)換信息,通過相應(yīng)的轉(zhuǎn)換器對需要導出的數(shù)據(jù)進行轉(zhuǎn)換;根據(jù)對象模型中的數(shù)據(jù)導出格式信息,調(diào)用相應(yīng)的文件生成器生成相應(yīng)格式的導出數(shù)據(jù)。優(yōu)選地,在系統(tǒng)啟動時,讀取配置文件,將配置文件中的配置信息解析成對象模型存儲在內(nèi)存中具體包括:在系統(tǒng)啟動時,讀取配置文件,并判斷配置文件中的配置信息是否正確,如果配置信息正確,則將配置信息解析成對象模型存儲在內(nèi)存中,否則,返回錯誤信息并結(jié)束操作。優(yōu)選地,根據(jù)用戶選擇的需要導出的數(shù)據(jù)和過濾條件、以及對象模型中的表結(jié)構(gòu)信息生成數(shù)據(jù)庫可執(zhí)行語句之前,上述方法還包括:啟動導出監(jiān)控定時器,通過導出監(jiān)控定時器獲取數(shù)據(jù)導出進度,并向用戶實時顯示數(shù)據(jù)導出進度。優(yōu)選地,根據(jù)用戶選擇的需要導出的數(shù)據(jù)和過濾條件、以及對象模型中的表結(jié)構(gòu)信息生成數(shù)據(jù)庫可執(zhí)行語句具體包括:對用戶選擇的需要導出的數(shù)據(jù)和過濾條件進行驗證,如果驗證通過,則根據(jù)用戶選擇的需要導出的數(shù)據(jù)和過濾條件、以及對象模型中的表結(jié)構(gòu)信息生成數(shù)據(jù)庫可執(zhí)行語句,如果驗證不通過,則返回錯誤信息并結(jié)束操作。優(yōu)選地,根據(jù)數(shù)據(jù)庫可執(zhí)行語句從數(shù)據(jù)庫中讀取需要導出的數(shù)據(jù)之前,上述方法還包括:計算需要導出的數(shù)據(jù)的總數(shù)據(jù)量,將總數(shù)據(jù)量存儲到內(nèi)存中,并反饋給導出監(jiān)控定時器;根據(jù)數(shù)據(jù)庫可執(zhí)行語句從數(shù)據(jù)庫中讀取需要導出的數(shù)據(jù)時,方法還包括:計算已經(jīng)導出的數(shù)據(jù)量,將已經(jīng)導出的數(shù)據(jù)量更新到內(nèi)存中,并反饋給導出監(jiān)控定時器。
優(yōu)選地,根據(jù)對象模型中的數(shù)據(jù)轉(zhuǎn)換信息,通過相應(yīng)的轉(zhuǎn)換器對需要導出的數(shù)據(jù)進行轉(zhuǎn)換具體包括:根據(jù)對象模型中的數(shù)據(jù)轉(zhuǎn)換信息,當確定需要導出的數(shù)據(jù)不需要進行轉(zhuǎn)換時,調(diào)用默認轉(zhuǎn)換器;當確定需要將數(shù)據(jù)庫中的ID字段轉(zhuǎn)換成對應(yīng)的名稱時,調(diào)用ID轉(zhuǎn)換器,通過ID轉(zhuǎn)換器對需要導出的數(shù)據(jù)進行轉(zhuǎn)換;當確定需要第三方服務(wù)來協(xié)助轉(zhuǎn)換時調(diào)用服務(wù)轉(zhuǎn)換器,通過服務(wù)轉(zhuǎn)換器調(diào)用第三方服務(wù)接口對需要導出的數(shù)據(jù)進行轉(zhuǎn)換。優(yōu)選地,根據(jù)對象模型中的數(shù)據(jù)導出格式信息,調(diào)用相應(yīng)的文件生成器生成相應(yīng)格式的導出數(shù)據(jù)之后,上述方法還包括:向用戶提供導出數(shù)據(jù)的下載鏈接。本發(fā)明還提供了一種數(shù)據(jù)導出裝置,包括:設(shè)置模塊,用于對配置文件中的配置信息進行設(shè)置,其中,配置信息包括:需要導出數(shù)據(jù)的數(shù)據(jù)庫信息、數(shù)據(jù)庫的表結(jié)構(gòu)信息、數(shù)據(jù)導出格式信息、以及數(shù)據(jù)轉(zhuǎn)換信息;配置文件解析模塊,用于在系統(tǒng)啟動時,讀取配置文件,將配置文件中的配置信息解析成對象模型存儲在內(nèi)存中;數(shù)據(jù)庫可執(zhí)行語句拼裝模塊,用于根據(jù)用戶選擇的需要導出的數(shù)據(jù)和過濾條件、以及對象模型中的表結(jié)構(gòu)信息生成數(shù)據(jù)庫可執(zhí)行語句;數(shù)據(jù)導出模塊,用于根據(jù)數(shù)據(jù)庫可執(zhí)行語句從數(shù)據(jù)庫中讀取需要導出的數(shù)據(jù),并根據(jù)對象模型中的數(shù)據(jù)轉(zhuǎn)換信息,通過相應(yīng)的轉(zhuǎn)換器對需要導出的數(shù)據(jù)進行轉(zhuǎn)換;根據(jù)對象模型中的數(shù)據(jù)導出格式信息,調(diào)用相應(yīng)的文件生成器生成相應(yīng)格式的導出數(shù)據(jù)。優(yōu)選地,配置文件解析模塊具體用于:在系統(tǒng)啟動時,讀取配置文件,并判斷配置文件中的配置信息是否正確,如果配置信息正確,則將配置信息解析成對象模型存儲在內(nèi)存中,否則,返回錯誤信息并結(jié)束操作;數(shù)據(jù)庫可執(zhí)行語句拼裝模塊具體用于:對用戶選擇的需要導出的數(shù)據(jù)和過濾條件進行驗證,如果驗證通過,則根據(jù)用戶選擇的需要導出的數(shù)據(jù)和過濾條件、以及對象模型中的表結(jié)構(gòu)信息生成數(shù)據(jù)庫可執(zhí)行語句,如果驗證不通過,則返回錯誤信息并結(jié)束操作;數(shù)據(jù)導出模塊具體用于:根據(jù)對象模型中的數(shù)據(jù)轉(zhuǎn)換信息,當確定需要導出的數(shù)據(jù)不需要進行轉(zhuǎn)換時,調(diào)用默認轉(zhuǎn)換器;當確定需要將數(shù)據(jù)庫中的ID字段轉(zhuǎn)換成對應(yīng)的名稱時,調(diào)用ID轉(zhuǎn)換器,通過ID轉(zhuǎn)換器對需要導出的數(shù)據(jù)進行轉(zhuǎn)換;當確定需要第三方服務(wù)來協(xié)助轉(zhuǎn)換時調(diào)用服務(wù)轉(zhuǎn)換器,通過服務(wù)轉(zhuǎn)換器調(diào)用第三方服務(wù)接口對需要導出的數(shù)據(jù)進行轉(zhuǎn)換。優(yōu)選地,上述裝置還包括:進度模塊,用于啟動導出監(jiān)控定時器,通過導出監(jiān)控定時器獲取數(shù)據(jù)導出進度,并向用戶實時顯示數(shù)據(jù)導出進度;計算模塊,用于計算需要導出的數(shù)據(jù)的總數(shù)據(jù)量、以及已經(jīng)導出的數(shù)據(jù)量,將總數(shù)據(jù)量以及已經(jīng)導出的數(shù)據(jù)量存儲到內(nèi)存中,并反饋給導出監(jiān)控定時器;下載模塊,用于向用戶提供導出數(shù)據(jù)的下載鏈接。本發(fā)明有益效果如下:借助于本發(fā)明實施例的技術(shù)方案,為需要進行數(shù)據(jù)導出的用戶提供了一個很好的工具,在本發(fā)明實施例中數(shù)據(jù)導出時不僅僅是簡單的直接將數(shù)據(jù)導出,還提供了需要轉(zhuǎn)換數(shù)據(jù)的配置,很大程度上提高了靈活性;此外,在數(shù)據(jù)導出過程中,通過實時的監(jiān)控緩存,讓用戶能夠清楚的知道自己數(shù)據(jù)導出的過程,大大提升了用戶體驗;并且,在本發(fā)明實施例中,導出的文件類型可配置化,大大提高了本工具的靈活性。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式
。
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:圖1是本發(fā)明實施例的數(shù)據(jù)導出方法的流程圖;圖2是本發(fā)明實施例的數(shù)據(jù)導出裝置的系統(tǒng)框架示意圖;圖3是本發(fā)明實施例的數(shù)據(jù)導出裝置的結(jié)構(gòu)示意圖。
具體實施例方式下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。為了解決現(xiàn)有技術(shù)中的上述問題,本發(fā)明提供了一種數(shù)據(jù)導出方法及裝置,本發(fā)明實施例中的高可配置數(shù)據(jù)導出方案中包括如下幾大功能塊:1、配置文件:配置文件描述了需要導出的表結(jié)構(gòu)信息(可支持多字段的計算方法配置),配置導出的數(shù)據(jù)文檔格式,支持txt格式與excel格式。2、配置文件解析:系統(tǒng)啟動時加載,解析對應(yīng)的配置文件,形成對象存儲在內(nèi)存中,用于控制整個數(shù)據(jù)導出流程。3、Sql拼裝:根據(jù)配置文件中配置的表結(jié)構(gòu)相關(guān)信息,自動生成sql語句再調(diào)用sql執(zhí)行模塊。4、數(shù)據(jù)導出:執(zhí)行sql語句,監(jiān)控數(shù)據(jù)導出的整個流程,并在前端給出導出的詳細進度,導出成功后提供下載鏈接。5、前端頁面:靈活的列選擇方式,用戶可以根據(jù)列表中列出的所有列選擇自己需要導出的列,導出過程中會提供詳細導出進度,導出完成后提供下載鏈接。以下結(jié)合附圖以及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不限定本發(fā)明。方法實施例根據(jù)本發(fā)明的實施例,提供了一種數(shù)據(jù)導出方法,圖1是本發(fā)明實施例的數(shù)據(jù)導出方法的流程圖,如圖1所示,根據(jù)本發(fā)明實施例的數(shù)據(jù)導出方法包括如下處理:步驟101,對配置文件中的配置信息進行設(shè)置,其中,配置信息包括:需要導出數(shù)據(jù)的數(shù)據(jù)庫信息、數(shù)據(jù)庫的表結(jié)構(gòu)信息、數(shù)據(jù)導出格式信息、以及數(shù)據(jù)轉(zhuǎn)換信息;步驟102,在系統(tǒng)啟動時,讀取配置文件,將配置文件中的配置信息解析成對象模型存儲在內(nèi)存中,并根據(jù)用戶選擇的需要導出的數(shù)據(jù)和過濾條件、以及對象模型中的表結(jié)構(gòu)信息生成數(shù)據(jù)庫可執(zhí)行語句;步驟102具體包括如下處理:在系統(tǒng)啟動時,讀取配置文件,并判斷配置文件中的配置信息是否正確,如果配置信息正確,則將配置信息解析成對象模型存儲在內(nèi)存中,否貝U,返回錯誤信息并結(jié)束操作。步驟102中,在根據(jù)用戶選擇的需要導出的數(shù)據(jù)和過濾條件、以及對象模型中的表結(jié)構(gòu)信息生成數(shù)據(jù)庫可執(zhí)行語句之前,還可以進行如下處理:啟動導出監(jiān)控定時器,通過導出監(jiān)控定時器獲取數(shù)據(jù)導出進度,并向用戶實時顯示數(shù)據(jù)導出進度。步驟102具體包括如下處理:對用戶選擇的需要導出的數(shù)據(jù)和過濾條件進行驗證,如果驗證通過,則根據(jù)用戶選擇的需要導出的數(shù)據(jù)和過濾條件、以及對象模型中的表結(jié)構(gòu)信息生成數(shù)據(jù)庫可執(zhí)行語句,如果驗證不通過,則返回錯誤信息并結(jié)束操作。步驟103,根據(jù)數(shù)據(jù)庫可執(zhí)行語句從數(shù)據(jù)庫中讀取需要導出的數(shù)據(jù),并根據(jù)對象模型中的數(shù)據(jù)轉(zhuǎn)換信息,通過相應(yīng)的轉(zhuǎn)換器對需要導出的數(shù)據(jù)進行轉(zhuǎn)換;在步驟103中,根據(jù)數(shù)據(jù)庫可執(zhí)行語句從數(shù)據(jù)庫中讀取需要導出的數(shù)據(jù)之前,還可以進行如下處理:計算需要導出的數(shù)據(jù)的總數(shù)據(jù)量,將總數(shù)據(jù)量存儲到內(nèi)存中,并反饋給導出監(jiān)控定時器;在根據(jù)數(shù)據(jù)庫可執(zhí)行語句從數(shù)據(jù)庫中讀取需要導出的數(shù)據(jù)時,還需要計算已經(jīng)導出的數(shù)據(jù)量,將已經(jīng)導出的數(shù)據(jù)量更新到內(nèi)存中,并反饋給導出監(jiān)控定時器。在步驟103中,根據(jù)對象模型中的數(shù)據(jù)轉(zhuǎn)換信息,通過相應(yīng)的轉(zhuǎn)換器對需要導出的數(shù)據(jù)進行轉(zhuǎn)換具體包括:根據(jù)對象模型中的數(shù)據(jù)轉(zhuǎn)換信息,當確定需要導出的數(shù)據(jù)不需要進行轉(zhuǎn)換時,調(diào)用默認轉(zhuǎn)換器;當確定需要將數(shù)據(jù)庫中的ID字段轉(zhuǎn)換成對應(yīng)的名稱時,調(diào)用ID轉(zhuǎn)換器,通過ID轉(zhuǎn)換器對需要導出的數(shù)據(jù)進行轉(zhuǎn)換;當確定需要第三方服務(wù)來協(xié)助轉(zhuǎn)換時調(diào)用服務(wù)轉(zhuǎn)換器,通過服務(wù)轉(zhuǎn)換器調(diào)用第三方服務(wù)接口對需要導出的數(shù)據(jù)進行轉(zhuǎn)換。步驟104,根據(jù)對象模型中的數(shù)據(jù)導出格式信息,調(diào)用相應(yīng)的文件生成器生成相應(yīng)格式的導出數(shù)據(jù)。在執(zhí)行了步驟104之后,需要向用戶提供導出數(shù)據(jù)的下載鏈接。以下對本發(fā)明實施例的上述技術(shù)方案進行詳細說明。圖2是本發(fā)明實施例的數(shù)據(jù)導出裝置的系統(tǒng)框架示意圖,圖2示出了本發(fā)明實施例的數(shù)據(jù)導出裝置中各個模塊的關(guān)系,本發(fā)明實施例的數(shù)據(jù)導出裝置是一個B/S框架的工具,主要的處理邏輯在Web Server端,Web Server端操作數(shù)據(jù)庫提取數(shù)據(jù)處理后再導出數(shù)據(jù),Browser端提供Π界面,供用戶選擇過濾條件以及需要導出數(shù)據(jù)的列,并監(jiān)控數(shù)據(jù)導出的進度。如圖2所示,本發(fā)明實施例的數(shù)據(jù)導出裝置中的各個模塊詳細說明如下:導出選擇列:選擇需要導出的數(shù)據(jù)列,以及數(shù)據(jù)的過濾條件。實時監(jiān)控器:實時監(jiān)控數(shù)據(jù)的導入過程,實時給出已經(jīng)導出的數(shù)據(jù)條數(shù)與總條數(shù)。文件下載:對于已經(jīng)導出的數(shù)據(jù)提供下載鏈接;系統(tǒng)初始化:系統(tǒng)啟動時首先被調(diào)用,用于加載系統(tǒng)配置文件行成對象,存儲在內(nèi)存中。SQL封裝器:將用戶選擇的過濾條件及需要導出的列封裝成SQL ;導出狀態(tài)緩存:導出過程中實時更新緩存,提供給前端監(jiān)控頁面調(diào)用。數(shù)據(jù)導出轉(zhuǎn)換器:對于數(shù)據(jù)庫中需要轉(zhuǎn)換的列,配置文件中配置的轉(zhuǎn)換器需要做相應(yīng)的轉(zhuǎn)換。數(shù)據(jù)導出成文件:經(jīng)過轉(zhuǎn)換器處理過的數(shù)據(jù)就可以寫入文件了,根據(jù)配置文件中配置的文件類型生成相應(yīng)類型的文件。Database:需要導出的數(shù)據(jù)存儲的位置。
其它數(shù)據(jù)源:數(shù)據(jù)導出時可能需要依賴其它服務(wù)來做數(shù)據(jù)轉(zhuǎn)換。根據(jù)本發(fā)明實施例的數(shù)據(jù)導出方法具體包括如下處理:步驟I,將用戶需要導出的數(shù)據(jù)庫信息,表結(jié)構(gòu)信息,導出的數(shù)據(jù)格式(TXT格式或者EXCEL格式),在配置文件中進行配置,如果需要表中多列數(shù)據(jù)合并(或者計算)例如,將數(shù)據(jù)庫中存儲ID的列轉(zhuǎn)換成ID對應(yīng)的名稱字段,再導出列的情況需要在配置文件中配置對應(yīng)的處理方法。步驟2,啟動系統(tǒng),系統(tǒng)啟動過程中,配置文件解析模塊會讀取配置文件,并判斷對應(yīng)的表結(jié)構(gòu)信息是否正確,配置的數(shù)據(jù)導出文件類型是否正確,如果驗證信息不通過,系統(tǒng)會報錯并退出,如果通過,解析模塊將配置文件中的配置信息解析成對象模型存儲在內(nèi)存中。步驟3,用戶通過前端頁面選擇需要導出的列(有些列可能不是數(shù)據(jù)表中的列,這時需要配置文件中有相應(yīng)的列轉(zhuǎn)換器配置),和其它過濾條件,直接提交進入SQL封裝模塊,此時前端頁面會啟動導出監(jiān)控定時器,定期發(fā)送請求去后端請求導出的進度,并實時顯示出導出的進度,例如:100/1000,表示已經(jīng)導出100條記錄,總共有1000條記錄需要導出。步驟4,當用戶提交表單后首先進入數(shù)據(jù)驗證模塊,例如:用戶是否選擇了列,如果用戶沒有選擇相關(guān)列的情況下是不允許進行導出操作的。步驟5,當用戶提交的數(shù)據(jù)經(jīng)過驗證以后,會進入SQL組裝模塊,系統(tǒng)根據(jù)用戶提交的表單數(shù)據(jù),從內(nèi)存中(步驟2中已經(jīng)將相應(yīng)的配置信息加載到內(nèi)存中)獲取對應(yīng)的數(shù)據(jù)庫字段封裝成可以在數(shù)據(jù)庫中執(zhí)行的SQL語句,如果用戶選擇的列涉及到多個表時,需要根據(jù)關(guān)聯(lián)條件組裝成較為復雜的關(guān)聯(lián)SQL,SQL封裝完成后即進入數(shù)據(jù)導出模塊。步驟6,當進入到數(shù)據(jù)導出模塊時,系統(tǒng)首先去計算需要導出的總數(shù)據(jù)量,并將計算結(jié)果存儲到內(nèi)存中,然后開始從數(shù)據(jù)庫中讀取需要導出的數(shù)據(jù),將讀取出來的數(shù)據(jù)字段去配置文件(啟動時已經(jīng)加載到內(nèi)存中)中查找對應(yīng)的轉(zhuǎn)換器(convert),找到轉(zhuǎn)換器后執(zhí)行對應(yīng)的轉(zhuǎn)換方法。步驟7,當進入轉(zhuǎn)換器后需要,根據(jù)轉(zhuǎn)換器的類型可分為:默認轉(zhuǎn)換器,ID轉(zhuǎn)換器,服務(wù)轉(zhuǎn)換器。默認轉(zhuǎn)換器:當數(shù)據(jù)庫中的字段不需要轉(zhuǎn)換時執(zhí)行該轉(zhuǎn)換器。ID轉(zhuǎn)換器:該轉(zhuǎn)換器將數(shù)據(jù)庫中的ID字段轉(zhuǎn)換成對應(yīng)的名稱。服務(wù)轉(zhuǎn)換器:當需要第三方服務(wù)來協(xié)助轉(zhuǎn)換時需要用到該轉(zhuǎn)換器,例如調(diào)用SCF服務(wù)接口來轉(zhuǎn)換。步驟8,每處理完一條數(shù)據(jù)庫中的記錄就更新一下內(nèi)存中的已導出數(shù)據(jù)量,前端實時請求內(nèi)存中的數(shù)據(jù)時就能導出導出過程中的進度,為了保證數(shù)據(jù)的準確性對于多線程的訪問做了同步處理。步驟9,經(jīng)過轉(zhuǎn)換的數(shù)據(jù)就可以持久化到文件了,根據(jù)配置文件中配置的文件類型,調(diào)用對應(yīng)的文件生成器生成文件,前端用戶可以下載對應(yīng)的文件。通過上述整個數(shù)據(jù)導出流程可以看出,使用發(fā)明實施例的數(shù)據(jù)導出方法時,結(jié)構(gòu)清晰,流程簡單,擴展性好,用戶體驗優(yōu)越,數(shù)據(jù)導出時只需要簡單的配置即可實現(xiàn)不同邏輯的數(shù)據(jù)導出功能,可以根據(jù)自己的配置導出不同格式(EXCEL/TXT)的數(shù)據(jù)文件,即使用戶的表結(jié)構(gòu)增加了字段也可以只通過增加配置文件的方式做到很好的擴展性。
裝置實施例根據(jù)本發(fā)明的實施例,提供了一種數(shù)據(jù)導出裝置,圖3是本發(fā)明實施例的數(shù)據(jù)導出裝置的結(jié)構(gòu)示意圖,如圖3所示,根據(jù)本發(fā)明實施例的數(shù)據(jù)導出裝置包括:設(shè)置模塊30、配置文件解析模塊32、數(shù)據(jù)庫可執(zhí)行語句拼裝模塊34、以及數(shù)據(jù)導出模塊36,以下對本發(fā)明實施例的各個模塊進行詳細的說明。設(shè)置模塊30,用于對配置文件中的配置信息進行設(shè)置,其中,配置信息包括:需要導出數(shù)據(jù)的數(shù)據(jù)庫信息、數(shù)據(jù)庫的表結(jié)構(gòu)信息、數(shù)據(jù)導出格式信息、以及數(shù)據(jù)轉(zhuǎn)換信息;配置文件解析模塊32,用于在系統(tǒng)啟動時,讀取配置文件,將配置文件中的配置信息解析成對象模型存儲在內(nèi)存中;配置文件解析模塊32具體用于:在系統(tǒng)啟動時,讀取配置文件,并判斷配置文件中的配置信息是否正確,如果配置信息正確,則將配置信息解析成對象模型存儲在內(nèi)存中,否則,返回錯誤信息并結(jié)束操作;數(shù)據(jù)庫可執(zhí)行語句拼裝模塊34,用于根據(jù)用戶選擇的需要導出的數(shù)據(jù)和過濾條件、以及對象模型中的表結(jié)構(gòu)信息生成數(shù)據(jù)庫可執(zhí)行語句;數(shù)據(jù)庫可執(zhí)行語句拼裝模塊34具體用于:對用戶選擇的需要導出的數(shù)據(jù)和過濾條件進行驗證,如果驗證通過,則根據(jù)用戶選擇的需要導出的數(shù)據(jù)和過濾條件、以及對象模型中的表結(jié)構(gòu)信息生成數(shù)據(jù)庫可執(zhí)行語句,如果驗證不通過,則返回錯誤信息并結(jié)束操作;數(shù)據(jù)導出模塊36,用于根據(jù)數(shù)據(jù)庫可執(zhí)行語句從數(shù)據(jù)庫中讀取需要導出的數(shù)據(jù),并根據(jù)對象模型中的數(shù)據(jù)轉(zhuǎn)換信息,通過相應(yīng)的轉(zhuǎn)換器對需要導出的數(shù)據(jù)進行轉(zhuǎn)換;根據(jù)對象模型中的數(shù)據(jù)導出格式信息,調(diào)用相應(yīng)的文件生成器生成相應(yīng)格式的導出數(shù)據(jù)。數(shù)據(jù)導出模塊36具體用于:根據(jù)對象模型中的數(shù)據(jù)轉(zhuǎn)換信息,當確定需要導出的數(shù)據(jù)不需要進行轉(zhuǎn)換時,調(diào)用默認轉(zhuǎn)換器;當確定需要將數(shù)據(jù)庫中的ID字段轉(zhuǎn)換成對應(yīng)的名稱時,調(diào)用ID轉(zhuǎn)換器,通過ID轉(zhuǎn)換器對需要導出的數(shù)據(jù)進行轉(zhuǎn)換;當確定需要第三方服務(wù)來協(xié)助轉(zhuǎn)換時調(diào)用服務(wù)轉(zhuǎn)換器,通過服務(wù)轉(zhuǎn)換器調(diào)用第三方服務(wù)接口對需要導出的數(shù)據(jù)進行轉(zhuǎn)換。優(yōu)選地,根據(jù)本發(fā)明實施例數(shù)據(jù)導出裝置還包括:進度模塊,用于啟動導出監(jiān)控定時器,通過導出監(jiān)控定時器獲取數(shù)據(jù)導出進度,并向用戶實時顯示數(shù)據(jù)導出進度;計算模塊,用于計算需要導出的數(shù)據(jù)的總數(shù)據(jù)量、以及已經(jīng)導出的數(shù)據(jù)量,將總數(shù)據(jù)量以及已經(jīng)導出的數(shù)據(jù)量存儲到內(nèi)存中,并反饋給導出監(jiān)控定時器;下載模塊,用于向用戶提供導出數(shù)據(jù)的下載鏈接。以下結(jié)合附圖,對本發(fā)明實施例的上述技術(shù)方案進行詳細說明。圖3是本發(fā)明實施例的數(shù)據(jù)導出裝置的系統(tǒng)框架示意圖,圖3示出了本發(fā)明實施例的數(shù)據(jù)導出裝置中各個模塊的關(guān)系,本發(fā)明實施例的數(shù)據(jù)導出裝置是一個B/S框架的工具,主要的處理邏輯在Web Server端,Web Server端操作數(shù)據(jù)庫提取數(shù)據(jù)處理后再導出數(shù)據(jù),Browser端提供Π界面,供用戶選擇過濾條件以及需要導出數(shù)據(jù)的列,并監(jiān)控數(shù)據(jù)導出的進度。以下對本發(fā)明實施例的上述技術(shù)方案進行詳細說明。
圖2是本發(fā)明實施例的數(shù)據(jù)導出裝置的系統(tǒng)框架示意圖,圖2示出了本發(fā)明實施例的數(shù)據(jù)導出裝置中各個模塊的關(guān)系,本發(fā)明實施例的數(shù)據(jù)導出裝置是一個B/S框架的工具,主要的處理邏輯在Web Server端,Web Server端操作數(shù)據(jù)庫提取數(shù)據(jù)處理后再導出數(shù)據(jù),Browser端提供Π界面,供用戶選擇過濾條件以及需要導出數(shù)據(jù)的列,并監(jiān)控數(shù)據(jù)導出的進度。如圖2所示,本發(fā)明實施例的數(shù)據(jù)導出裝置中的各個模塊詳細說明如下:導出選擇列:選擇需要導出的數(shù)據(jù)列,以及數(shù)據(jù)的過濾條件。實時監(jiān)控器:實時監(jiān)控數(shù)據(jù)的導入過程,實時給出已經(jīng)導出的數(shù)據(jù)條數(shù)與總條數(shù)。文件下載:對于已經(jīng)導出的數(shù)據(jù)提供下載鏈接;系統(tǒng)初始化:系統(tǒng)啟動時首先被調(diào)用,用于加載系統(tǒng)配置文件行成對象,存儲在內(nèi)存中。SQL封裝器:將用戶選擇的過濾條件及需要導出的列封裝成SQL ;導出狀態(tài)緩存:導出過程中實時更新緩存,提供給前端監(jiān)控頁面調(diào)用。數(shù)據(jù)導出轉(zhuǎn)換器:對于數(shù)據(jù)庫中需要轉(zhuǎn)換的列,配置文件中配置的轉(zhuǎn)換器需要做相應(yīng)的轉(zhuǎn)換。數(shù)據(jù)導出成文件:經(jīng)過轉(zhuǎn)換器處理過的數(shù)據(jù)就可以寫入文件了,根據(jù)配置文件中配置的文件類型生成相應(yīng)類型的文件。Database:需要導出的數(shù)據(jù)存儲的位置。其它數(shù)據(jù)源:數(shù)據(jù)導出時可能需要依賴其它服務(wù)來做數(shù)據(jù)轉(zhuǎn)換。根據(jù)本發(fā)明實施例的數(shù)據(jù)導出方法具體包括如下處理:步驟I,將用戶需要導出的數(shù)據(jù)庫信息,表結(jié)構(gòu)信息,導出的數(shù)據(jù)格式(TXT格式或者EXCEL格式),在配置文件中進行配置,如果需要表中多列數(shù)據(jù)合并(或者計算)例如,將數(shù)據(jù)庫中存儲ID的列轉(zhuǎn)換成ID對應(yīng)的名稱字段,再導出列的情況需要在配置文件中配置對應(yīng)的處理方法。步驟2,啟動系統(tǒng),系統(tǒng)啟動過程中,配置文件解析模塊會讀取配置文件,并判斷對應(yīng)的表結(jié)構(gòu)信息是否正確,配置的數(shù)據(jù)導出文件類型是否正確,如果驗證信息不通過,系統(tǒng)會報錯并退出,如果通過,解析模塊將配置文件中的配置信息解析成對象模型存儲在內(nèi)存中。步驟3,用戶通過前端頁面選擇需要導出的列(有些列可能不是數(shù)據(jù)表中的列,這時需要配置文件中有相應(yīng)的列轉(zhuǎn)換器配置),和其它過濾條件,直接提交進入SQL封裝模塊,此時前端頁面會啟動導出監(jiān)控定時器,定期發(fā)送請求去后端請求導出的進度,并實時顯示出導出的進度,例如:100/1000,表示已經(jīng)導出100條記錄,總共有1000條記錄需要導出。步驟4,當用戶提交表單后首先進入數(shù)據(jù)驗證模塊,例如:用戶是否選擇了列,如果用戶沒有選擇相關(guān)列的情況下是不允許進行導出操作的。步驟5,當用戶提交的數(shù)據(jù)經(jīng)過驗證以后,會進入SQL組裝模塊,系統(tǒng)根據(jù)用戶提交的表單數(shù)據(jù),從內(nèi)存中(步驟2中已經(jīng)將相應(yīng)的配置信息加載到內(nèi)存中)獲取對應(yīng)的數(shù)據(jù)庫字段封裝成可以在數(shù)據(jù)庫中執(zhí)行的SQL語句,如果用戶選擇的列涉及到多個表時,需要根據(jù)關(guān)聯(lián)條件組裝成較為復雜的關(guān)聯(lián)SQL,SQL封裝完成后即進入數(shù)據(jù)導出模塊。步驟6,當進入到數(shù)據(jù)導出模塊時,系統(tǒng)首先去計算需要導出的總數(shù)據(jù)量,并將計算結(jié)果存儲到內(nèi)存中,然后開始從數(shù)據(jù)庫中讀取需要導出的數(shù)據(jù),將讀取出來的數(shù)據(jù)字段去配置文件(啟動時已經(jīng)加載到內(nèi)存中)中查找對應(yīng)的轉(zhuǎn)換器(convert),找到轉(zhuǎn)換器后執(zhí)行對應(yīng)的轉(zhuǎn)換方法。步驟7,當進入轉(zhuǎn)換器后需要,根據(jù)轉(zhuǎn)換器的類型可分為:默認轉(zhuǎn)換器,ID轉(zhuǎn)換器,服務(wù)轉(zhuǎn)換器。默認轉(zhuǎn)換器:當數(shù)據(jù)庫中的字段不需要轉(zhuǎn)換時執(zhí)行該轉(zhuǎn)換器。ID轉(zhuǎn)換器:該轉(zhuǎn)換器將數(shù)據(jù)庫中的ID字段轉(zhuǎn)換成對應(yīng)的名稱。服務(wù)轉(zhuǎn)換器:當需要第三方服務(wù)來協(xié)助轉(zhuǎn)換時需要用到該轉(zhuǎn)換器,例如調(diào)用SCF服務(wù)接口來轉(zhuǎn)換。步驟8,每處理完一條數(shù)據(jù)庫中的記錄就更新一下內(nèi)存中的已導出數(shù)據(jù)量,前端實時請求內(nèi)存中的數(shù)據(jù)時就能導出導出過程中的進度,為了保證數(shù)據(jù)的準確性對于多線程的訪問做了同步處理。步驟9,經(jīng)過轉(zhuǎn)換的數(shù)據(jù)就可以持久化到文件了,根據(jù)配置文件中配置的文件類型,調(diào)用對應(yīng)的文件生成器生成文件,前端用戶可以下載對應(yīng)的文件。通過上述整個數(shù)據(jù)導出流程可以看出,使用發(fā)明實施例的數(shù)據(jù)導出方法時,結(jié)構(gòu)清晰,流程簡單,擴展性好,用戶體驗優(yōu)越,數(shù)據(jù)導出時只需要簡單的配置即可實現(xiàn)不同邏輯的數(shù)據(jù)導出功能,可以根據(jù)自己的配置導出不同格式(EXCEL/TXT)的數(shù)據(jù)文件,即使用戶的表結(jié)構(gòu)增加了字段也可以只通過增加配置文件的方式做到很好的擴展性。在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。類似地,應(yīng)當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式
的權(quán)利要求書由此明確地并入該具體實施方式
,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的數(shù)據(jù)導出裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
權(quán)利要求
1.一種數(shù)據(jù)導出方法,其特征在于,包括: 對配置文件中的配置信息進行設(shè)置,其中,所述配置信息包括:需要導出數(shù)據(jù)的數(shù)據(jù)庫信息、數(shù)據(jù)庫的表結(jié)構(gòu)信息、數(shù)據(jù)導出格式信息、以及數(shù)據(jù)轉(zhuǎn)換信息; 在系統(tǒng)啟動時,讀取所述配置文件,將所述配置文件中的配置信息解析成對象模型存儲在內(nèi)存中,并根據(jù)用戶選擇的需要導出的數(shù)據(jù)和過濾條件、以及所述對象模型中的所述表結(jié)構(gòu)信息生成數(shù)據(jù)庫可執(zhí)行語句; 根據(jù)所述數(shù)據(jù)庫可執(zhí)行語句從所述數(shù)據(jù)庫中讀取需要導出的數(shù)據(jù),并根據(jù)所述對象模型中的所述數(shù)據(jù)轉(zhuǎn)換信息,通過相應(yīng)的轉(zhuǎn)換器對所述需要導出的數(shù)據(jù)進行轉(zhuǎn)換; 根據(jù)所述對象模型中的數(shù)據(jù)導出格式信息,調(diào)用相應(yīng)的文件生成器生成相應(yīng)格式的導出數(shù)據(jù)。
2.按權(quán)利要求1所述的方法,其特征在于,在系統(tǒng)啟動時,讀取所述配置文件,將所述配置文件中的配置信息解析成對象模型存儲在內(nèi)存中具體包括: 在系統(tǒng)啟動時,讀取所述配置文件,并判斷所述配置文件中的所述配置信息是否正確,如果所述配置信息正確,則將所述配置信息解析成對象模型存儲在內(nèi)存中,否則,返回錯誤信息并結(jié)束操作。
3.按權(quán)利要求1所述的方法,其特征在于,根據(jù)用戶選擇的需要導出的數(shù)據(jù)和過濾條件、以及所述對象模型中的所述表結(jié)構(gòu)信息生成數(shù)據(jù)庫可執(zhí)行語句之前,所述方法還包括: 啟動導出監(jiān)控定時器,通過所述導出監(jiān)控定時器獲取數(shù)據(jù)導出進度,并向用戶實時顯示所述數(shù)據(jù)導出進度。
4.按權(quán)利要求1所述的方法,其特征在于,根據(jù)用戶選擇的需要導出的數(shù)據(jù)和過濾條件、以及所述對象模型 中的所述表結(jié)構(gòu)信息生成數(shù)據(jù)庫可執(zhí)行語句具體包括: 對所述用戶選擇的需要導出的數(shù)據(jù)和過濾條件進行驗證,如果驗證通過,則根據(jù)用戶選擇的需要導出的數(shù)據(jù)和過濾條件、以及所述對象模型中的所述表結(jié)構(gòu)信息生成數(shù)據(jù)庫可執(zhí)行語句,如果驗證不通過,則返回錯誤信息并結(jié)束操作。
5.按權(quán)利要求3所述的方法,其特征在于,根據(jù)所述數(shù)據(jù)庫可執(zhí)行語句從所述數(shù)據(jù)庫中讀取需要導出的數(shù)據(jù)之前,所述方法還包括:計算需要導出的數(shù)據(jù)的總數(shù)據(jù)量,將所述總數(shù)據(jù)量存儲到內(nèi)存中,并反饋給所述導出監(jiān)控定時器; 根據(jù)所述數(shù)據(jù)庫可執(zhí)行語句從所述數(shù)據(jù)庫中讀取需要導出的數(shù)據(jù)時,所述方法還包括:計算已經(jīng)導出的數(shù)據(jù)量,將已經(jīng)導出的數(shù)據(jù)量更新到內(nèi)存中,并反饋給所述導出監(jiān)控定時器。
6.按權(quán)利要求1所述的方法,其特征在于,根據(jù)所述對象模型中的所述數(shù)據(jù)轉(zhuǎn)換信息,通過相應(yīng)的轉(zhuǎn)換器對所述需要導出的數(shù)據(jù)進行轉(zhuǎn)換具體包括: 根據(jù)所述對象模型中的所述數(shù)據(jù)轉(zhuǎn)換信息,當確定需要導出的數(shù)據(jù)不需要進行轉(zhuǎn)換時,調(diào)用默認轉(zhuǎn)換器;當確定需要將數(shù)據(jù)庫中的ID字段轉(zhuǎn)換成對應(yīng)的名稱時,調(diào)用ID轉(zhuǎn)換器,通過所述ID轉(zhuǎn)換器對所述需要導出的數(shù)據(jù)進行轉(zhuǎn)換;當確定需要第三方服務(wù)來協(xié)助轉(zhuǎn)換時調(diào)用服務(wù)轉(zhuǎn)換器,通過所述服務(wù)轉(zhuǎn)換器調(diào)用第三方服務(wù)接口對所述需要導出的數(shù)據(jù)進行轉(zhuǎn)換。
7.按權(quán)利要求1所述的方法,其特征在于,根據(jù)所述對象模型中的數(shù)據(jù)導出格式信息,調(diào)用相應(yīng)的文件生成器生成相應(yīng)格式的導出數(shù)據(jù)之后,所述方法還包括: 向用戶提供所述導出數(shù)據(jù)的下載鏈接。
8.一種數(shù)據(jù)導出裝置,其特征在于,包括: 設(shè)置模塊,用于對配置文件中的配置信息進行設(shè)置,其中,所述配置信息包括:需要導出數(shù)據(jù)的數(shù)據(jù)庫信息、數(shù)據(jù)庫的表結(jié)構(gòu)信息、數(shù)據(jù)導出格式信息、以及數(shù)據(jù)轉(zhuǎn)換信息; 配置文件解析模塊,用于在系統(tǒng)啟動時,讀取所述配置文件,將所述配置文件中的配置信息解析成對象模型存儲在內(nèi)存中; 數(shù)據(jù)庫可執(zhí)行語句拼裝模塊,用于根據(jù)用戶選擇的需要導出的數(shù)據(jù)和過濾條件、以及所述對象模型中的所述表結(jié)構(gòu)信息生成數(shù)據(jù)庫可執(zhí)行語句; 數(shù)據(jù)導出模塊,用于根據(jù)所述數(shù)據(jù)庫可執(zhí)行語句從所述數(shù)據(jù)庫中讀取需要導出的數(shù)據(jù),并根據(jù)所述對象模型中的所述數(shù)據(jù)轉(zhuǎn)換信息,通過相應(yīng)的轉(zhuǎn)換器對所述需要導出的數(shù)據(jù)進行轉(zhuǎn)換;根據(jù)所述對象模型中的數(shù)據(jù)導出格式信息,調(diào)用相應(yīng)的文件生成器生成相應(yīng)格式的導出數(shù)據(jù)。
9.按權(quán)利要求7所述的裝置,其特征在于, 所述配置文件解析模塊具體用于:在系統(tǒng)啟動時,讀取所述配置文件,并判斷所述配置文件中的所述配置信息是否正確,如果所述配置信息正確,則將所述配置信息解析成對象模型存儲在內(nèi)存中,否則,返回錯誤信息并結(jié)束操作; 所述數(shù)據(jù)庫可執(zhí)行語句拼裝模塊具體用于:對所述用戶選擇的需要導出的數(shù)據(jù)和過濾條件進行驗證,如果驗證通過,則根據(jù)用戶選擇的需要導出的數(shù)據(jù)和過濾條件、以及所述對象模型中的所述表結(jié)構(gòu)信息生成數(shù)據(jù)庫可執(zhí)行語句,如果驗證不通過,則返回錯誤信息并結(jié)束操作; 所述數(shù)據(jù)導出模塊具體用于:根據(jù)所述對象模型中的所述數(shù)據(jù)轉(zhuǎn)換信息,當確定需要導出的數(shù)據(jù)不需要進行轉(zhuǎn)換時,調(diào)用默認轉(zhuǎn)換器;當確定需要將數(shù)據(jù)庫中的ID字段轉(zhuǎn)換成對應(yīng)的名稱時,調(diào)用ID轉(zhuǎn)換器,通過所述ID轉(zhuǎn)換器對所述需要導出的數(shù)據(jù)進行轉(zhuǎn)換;當確定需要第三方服務(wù)來協(xié)助轉(zhuǎn)換時調(diào)用服務(wù)轉(zhuǎn)換器,通過所述服務(wù)轉(zhuǎn)換器調(diào)用第三方服務(wù)接口對所述需要導出的數(shù)據(jù)進行轉(zhuǎn)換。
10.按權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括: 進度模塊,用于啟動導出監(jiān)控定時器,通過所述導出監(jiān)控定時器獲取數(shù)據(jù)導出進度,并向用戶實時顯示所述數(shù)據(jù)導出進度; 計算模塊,用于計算需要導出的數(shù)據(jù)的總數(shù)據(jù)量、以及已經(jīng)導出的數(shù)據(jù)量,將所述總數(shù)據(jù)量以及所述已經(jīng)導出的數(shù)據(jù)量存儲到內(nèi)存中,并反饋給所述導出監(jiān)控定時器; 下載模塊,用于向用戶提供所述導出數(shù)據(jù)的下載鏈接。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)導出方法及裝置。該方法包括對配置文件中的配置信息進行設(shè)置,其中,配置信息包括需要導出數(shù)據(jù)的數(shù)據(jù)庫信息、數(shù)據(jù)庫的表結(jié)構(gòu)信息、數(shù)據(jù)導出格式信息、以及數(shù)據(jù)轉(zhuǎn)換信息;在系統(tǒng)啟動時,讀取配置文件,將配置文件中的配置信息解析成對象模型存儲在內(nèi)存中,并根據(jù)用戶選擇的需要導出的數(shù)據(jù)和過濾條件、以及對象模型中的表結(jié)構(gòu)信息生成數(shù)據(jù)庫可執(zhí)行語句;根據(jù)數(shù)據(jù)庫可執(zhí)行語句從數(shù)據(jù)庫中讀取需要導出的數(shù)據(jù),并根據(jù)對象模型中的數(shù)據(jù)轉(zhuǎn)換信息,通過相應(yīng)的轉(zhuǎn)換器對需要導出的數(shù)據(jù)進行轉(zhuǎn)換;根據(jù)對象模型中的數(shù)據(jù)導出格式信息,調(diào)用相應(yīng)的文件生成器生成相應(yīng)格式的導出數(shù)據(jù)。
文檔編號G06F17/30GK103092993SQ20131005254
公開日2013年5月8日 申請日期2013年2月18日 優(yōu)先權(quán)日2013年2月18日
發(fā)明者禹艷, 羅宇翔 申請人:五八同城信息技術(shù)有限公司