本發(fā)明涉及通信領(lǐng)域,更具體地說,涉及一種服務(wù)器及數(shù)據(jù)導(dǎo)出方法。
背景技術(shù):
在網(wǎng)頁管理系統(tǒng)中,導(dǎo)出數(shù)據(jù)到數(shù)據(jù)表格是個(gè)高頻功能。爪哇平臺(tái)中涌現(xiàn)了多種導(dǎo)出框架,廣泛應(yīng)用在導(dǎo)出功能中,現(xiàn)有的導(dǎo)出框架能將少量數(shù)據(jù)導(dǎo)出。現(xiàn)有數(shù)據(jù)格式一般采用辦公公開可擴(kuò)展語音(officeopenextensiblemarkuplanguage,ooxml)格式,其中,ooxml格式是微軟公司開發(fā)的技術(shù)規(guī)范,現(xiàn)已成為國(guó)際文檔格式標(biāo)準(zhǔn)格式。采用ooxml格式的表格可以存儲(chǔ)到1048576條數(shù)據(jù),存儲(chǔ)量超過百萬。但是目前的數(shù)據(jù)導(dǎo)出框架,沒有考慮海量數(shù)據(jù)的導(dǎo)出場(chǎng)景,只能一次性讀取少量數(shù)據(jù),然后導(dǎo)出到指定的文件中。如果從數(shù)據(jù)庫一次性讀取百萬級(jí)以上數(shù)據(jù),服務(wù)器需要很大的內(nèi)存才能存儲(chǔ)百萬級(jí)以上數(shù)據(jù),存儲(chǔ)數(shù)據(jù)的內(nèi)存過多會(huì)導(dǎo)致服務(wù)器存在很高的宕機(jī)風(fēng)險(xiǎn),無法將大量數(shù)據(jù)快速導(dǎo)出。
技術(shù)實(shí)現(xiàn)要素:
鑒于此,本發(fā)明提供了一種服務(wù)器及數(shù)據(jù)導(dǎo)出方法,所述服務(wù)器及數(shù)據(jù)導(dǎo)出方法能快速導(dǎo)出大量數(shù)據(jù),提高數(shù)據(jù)的導(dǎo)出效率。
本發(fā)明提供一種服務(wù)器,所述服務(wù)器包括:
查詢模塊,用于根據(jù)導(dǎo)出條件查詢所有待導(dǎo)出的數(shù)據(jù),并計(jì)算所述所有待導(dǎo)出數(shù)據(jù)的數(shù)量;
劃分模塊,用于將所述所有待導(dǎo)出數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)分頁;
導(dǎo)出模塊,用于將當(dāng)前所述數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中。
可選地,所述劃分模塊包括:
計(jì)算模塊,用于根據(jù)每個(gè)數(shù)據(jù)分頁的數(shù)據(jù)量和所述所有待導(dǎo)出的數(shù)據(jù)計(jì)算出待分頁的分頁數(shù)目;
生成模塊,用于根據(jù)所述分頁數(shù)目將所述所有待導(dǎo)出的數(shù)據(jù)劃分為對(duì)應(yīng)的數(shù)據(jù)分頁。
可選地,所述服務(wù)器包括:
判斷模塊,用于判斷當(dāng)前所述數(shù)據(jù)分頁是否為最后一個(gè)的數(shù)據(jù)分頁;
應(yīng)用模塊,用于當(dāng)當(dāng)前數(shù)據(jù)分頁不為最后一個(gè)的數(shù)據(jù)分頁時(shí),清空所述當(dāng)前數(shù)據(jù)分頁所占的內(nèi)存,將所述當(dāng)前數(shù)據(jù)分頁對(duì)應(yīng)的下一個(gè)所述數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,將已被導(dǎo)出數(shù)據(jù)所占的內(nèi)存清空,其中,所述數(shù)據(jù)分頁中的一條數(shù)據(jù)對(duì)應(yīng)所述預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。
可選地,所述查詢模塊,還用于根據(jù)瀏覽器客戶端輸入的導(dǎo)出條件確定百萬級(jí)以及百萬級(jí)以上的待導(dǎo)出的數(shù)據(jù);
所述劃分模塊,還用于根據(jù)所述百萬級(jí)以及百萬級(jí)以上的待導(dǎo)出的數(shù)據(jù)以及每個(gè)數(shù)據(jù)分頁的數(shù)據(jù)量計(jì)算出待分頁的分頁數(shù)目,根據(jù)所述分頁數(shù)目將所述所有待導(dǎo)出的數(shù)據(jù)劃分為對(duì)應(yīng)的數(shù)據(jù)分頁;
所述導(dǎo)出模塊,還用于依次將每個(gè)所述數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,將已被導(dǎo)出數(shù)據(jù)所占的內(nèi)存清空,其中,所述數(shù)據(jù)分頁中的每條數(shù)據(jù)對(duì)應(yīng)所述預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。
可選地,所述服務(wù)器還包括:
檢測(cè)模塊,用于檢測(cè)內(nèi)存中存儲(chǔ)的數(shù)據(jù)是否達(dá)到預(yù)設(shè)數(shù)目;
所述導(dǎo)出模塊,還用于當(dāng)內(nèi)存中存儲(chǔ)的數(shù)據(jù)達(dá)到預(yù)設(shè)數(shù)目時(shí),將所述內(nèi)存中存儲(chǔ)的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,將已被導(dǎo)出數(shù)據(jù)所占的內(nèi)存清空,其中,所述內(nèi)存中存儲(chǔ)的每條數(shù)據(jù)對(duì)應(yīng)所述預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。
本發(fā)明還提供了一種數(shù)據(jù)導(dǎo)出方法,所述數(shù)據(jù)導(dǎo)出方法包括:
根據(jù)導(dǎo)出條件查詢所有待導(dǎo)出的數(shù)據(jù),并計(jì)算所述所有待導(dǎo)出數(shù)據(jù)的數(shù)量;
將所述所有待導(dǎo)出數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)分頁;
將當(dāng)前所述數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中。
可選地,所述將所述所有待導(dǎo)出數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)分頁,包括:
根據(jù)每個(gè)數(shù)據(jù)分頁的數(shù)據(jù)量和所述所有待導(dǎo)出的數(shù)據(jù)計(jì)算出待分頁的分頁數(shù)目;
根據(jù)所述分頁數(shù)目將所述所有待導(dǎo)出的數(shù)據(jù)劃分為對(duì)應(yīng)的數(shù)據(jù)分頁。
可選地,所述將當(dāng)前所述數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中之后,所述方法還包括:
判斷當(dāng)前所述數(shù)據(jù)分頁是否為最后一個(gè)的數(shù)據(jù)分頁;
當(dāng)當(dāng)前數(shù)據(jù)分頁不為最后一個(gè)的數(shù)據(jù)分頁時(shí),清空所述當(dāng)前數(shù)據(jù)分頁所占的內(nèi)存;
將所述當(dāng)前數(shù)據(jù)分頁對(duì)應(yīng)的下一個(gè)所述數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,將已被導(dǎo)出數(shù)據(jù)所占的內(nèi)存清空,其中,所述數(shù)據(jù)分頁中的一條數(shù)據(jù)對(duì)應(yīng)所述預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。
可選地,所述根據(jù)導(dǎo)出條件查詢所有待導(dǎo)出的數(shù)據(jù)之前或之后,所述方法還包括:
根據(jù)瀏覽器客戶端輸入的導(dǎo)出條件確定百萬級(jí)以及百萬級(jí)以上的待導(dǎo)出的數(shù)據(jù);
根據(jù)所述百萬級(jí)以及百萬級(jí)以上的待導(dǎo)出的數(shù)據(jù)以及每個(gè)數(shù)據(jù)分頁的數(shù)據(jù)量計(jì)算出待分頁的分頁數(shù)目;
根據(jù)所述分頁數(shù)目將所述所有待導(dǎo)出的數(shù)據(jù)劃分為對(duì)應(yīng)的數(shù)據(jù)分頁;
依次將每個(gè)所述數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,將已被導(dǎo)出數(shù)據(jù)所占的內(nèi)存清空,其中,所述數(shù)據(jù)分頁中的每條數(shù)據(jù)對(duì)應(yīng)所述預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。
可選地,所述根據(jù)導(dǎo)出條件查詢所有待導(dǎo)出的數(shù)據(jù)之前或之后,所述方法還包括:
檢測(cè)內(nèi)存中存儲(chǔ)的數(shù)據(jù)是否達(dá)到預(yù)設(shè)數(shù)目;
當(dāng)內(nèi)存中存儲(chǔ)的數(shù)據(jù)達(dá)到預(yù)設(shè)數(shù)目時(shí),將所述內(nèi)存中存儲(chǔ)的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,將已被導(dǎo)出數(shù)據(jù)所占的內(nèi)存清空,其中,所述內(nèi)存中存儲(chǔ)的每條數(shù)據(jù)對(duì)應(yīng)所述預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。
本發(fā)明提供的服務(wù)器及數(shù)據(jù)導(dǎo)出方法能根據(jù)導(dǎo)出條件查詢所有待導(dǎo)出的數(shù)據(jù),并計(jì)算所述所有待導(dǎo)出數(shù)據(jù)的數(shù)量,將所述所有待導(dǎo)出數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)分頁,當(dāng)前所述數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,這樣,能將需要導(dǎo)出的大量數(shù)據(jù)進(jìn)行分頁處理得到數(shù)據(jù)分頁,依次導(dǎo)出數(shù)據(jù)分頁的數(shù)據(jù),并清除內(nèi)存中的數(shù)據(jù),能將快速導(dǎo)出大量數(shù)據(jù),提高數(shù)據(jù)的導(dǎo)出效率。
附圖說明
圖1是實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例服務(wù)器導(dǎo)出數(shù)據(jù)的應(yīng)用環(huán)境圖;
圖2是本發(fā)明實(shí)施例一服務(wù)器的功能模塊圖;
圖3是本發(fā)明實(shí)施例二服務(wù)器的功能模塊圖;
圖4是本發(fā)明實(shí)施例三服務(wù)器的功能模塊圖;
圖5是本發(fā)明實(shí)施例四服務(wù)器的功能模塊圖;
圖6是本發(fā)明實(shí)施例五數(shù)據(jù)導(dǎo)出方法的流程圖;
圖7是本發(fā)明實(shí)施例六數(shù)據(jù)導(dǎo)出方法的流程圖;
圖8是本發(fā)明實(shí)施例七數(shù)據(jù)導(dǎo)出方法的流程圖;
圖9是本發(fā)明實(shí)施例八數(shù)據(jù)導(dǎo)出方法的流程圖。
本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
具體實(shí)施方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
現(xiàn)在將參考附圖描述實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例一可選的服務(wù)器。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身并沒有特定的意義。因此,"模塊"與"部件"可以混合地使用。
服務(wù)器可以以各種形式來實(shí)施。例如,本發(fā)明中描述的服務(wù)器可以包括諸如大型服務(wù)器、小型服務(wù)器。
圖1為實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例服務(wù)器所在的應(yīng)用環(huán)境示意圖。圖1中包括服務(wù)器10、終端270、筆記本271,其中,服務(wù)器10分別與終端270、筆記本271進(jìn)行通信,服務(wù)器10中存儲(chǔ)大量數(shù)據(jù),大量數(shù)據(jù)包括:應(yīng)用數(shù)據(jù)、數(shù)據(jù)庫、日志、其他數(shù)據(jù)源的數(shù)據(jù)。
終端270、筆記本271可以向服務(wù)器10請(qǐng)求導(dǎo)出數(shù)據(jù),服務(wù)器10可以接受終端270、筆記本271的請(qǐng)求,將數(shù)據(jù)導(dǎo)出至終端270、筆記本271。
補(bǔ)充說明的是,請(qǐng)求服務(wù)器10導(dǎo)出的設(shè)備可以為其他請(qǐng)求導(dǎo)出數(shù)據(jù)的裝置,在此僅僅示意性畫出兩個(gè),在本實(shí)施例中對(duì)請(qǐng)求導(dǎo)出數(shù)據(jù)的裝置不做限制。
服務(wù)器10可以包括,但不限于,存儲(chǔ)器、控制器、無線通信單元、輸入單元、輸入單元、接口單元及電源單元。但是應(yīng)當(dāng)理解的是,并不要求實(shí)施所有組件??梢蕴娲貙?shí)施更多或更少的組件。將在下面詳細(xì)描述服務(wù)器10的元件。
無線通信單元通常包括一個(gè)或多個(gè)組件,其允許服務(wù)器10與無線通信系統(tǒng)或網(wǎng)絡(luò)之間的無線點(diǎn)通信。例如,無線通信單元可以包括廣播生成模塊、移動(dòng)通信模塊、無線互聯(lián)網(wǎng)模塊、短程通信模塊和位置消息模塊中的至少一個(gè)。
廣播生成模塊經(jīng)由廣播信道從外部廣播管理服務(wù)器接收廣播信號(hào)和/或廣播相關(guān)消息。廣播信道可以包括衛(wèi)星信道和/或地面信道。廣播管理服務(wù)器可以是生成并發(fā)送廣播信號(hào)和/或廣播相關(guān)消息的服務(wù)器或者接收之前生成的廣播信號(hào)和/或廣播相關(guān)消息并且將其發(fā)送給終端的服務(wù)器。廣播信號(hào)可以包括tv廣播信號(hào)、無線電廣播信號(hào)、數(shù)據(jù)廣播信號(hào)等等。而且,廣播信號(hào)可以進(jìn)一步包括與tv或無線電廣播信號(hào)組合的廣播信號(hào)。廣播相關(guān)消息也可以經(jīng)由移動(dòng)通信網(wǎng)絡(luò)提供,并且在該情況下,廣播相關(guān)消息可以由移動(dòng)通信模塊來接收。廣播信號(hào)可以以各種形式存在,例如,其可以以數(shù)字多媒體廣播(dmb)的電子節(jié)目指南(epg)、數(shù)字視頻或音頻廣播手持(dvb-h)的電子服務(wù)指南(esg)等等的形式而存在。廣播生成模塊可以通過使用各種類型的廣播系統(tǒng)接收信號(hào)廣播。特別地,廣播生成模塊可以通過使用諸如多媒體廣播-地面(dmb-t)、數(shù)字多媒體廣播-衛(wèi)星(dmb-s)、數(shù)字視頻或音頻廣播-手持(dvb-h),前向鏈路媒體(mediaflo@)的數(shù)據(jù)廣播系統(tǒng)、地面數(shù)字廣播綜合服務(wù)(isdb-t)等等的數(shù)字廣播系統(tǒng)接收數(shù)字廣播。廣播生成模塊可以被構(gòu)造為適合提供廣播信號(hào)的各種廣播系統(tǒng)以及上述數(shù)字廣播系統(tǒng)。經(jīng)由廣播生成模塊接收的廣播信號(hào)和/或廣播相關(guān)消息可以存儲(chǔ)在存儲(chǔ)器或者其它類型的存儲(chǔ)介質(zhì)中。
移動(dòng)通信模塊將無線電信號(hào)發(fā)送到基站(例如,接入點(diǎn)、節(jié)點(diǎn)b等等)、外部終端以及服務(wù)器中的至少一個(gè)和/或從其接收無線電信號(hào)。這樣的無線電信號(hào)可以包括語言通話信號(hào)、視頻或音頻通話信號(hào)、或者根據(jù)文本和/或多媒體消息發(fā)送和/或接收的各種類型的數(shù)據(jù)。
無線互聯(lián)網(wǎng)模塊支持服務(wù)器的無線互聯(lián)網(wǎng)接入。該模塊可以內(nèi)部或外部地耦接到終端。該模塊所涉及的無線互聯(lián)網(wǎng)接入技術(shù)可以包括wlan(無線lan)(wi-fi)、wibro(無線寬帶)、wimax(全球微波互聯(lián)接入)、hsdpa(高速下行鏈路分組接入)等等。
短程通信模塊是用于支持短程通信的模塊。短程通信技術(shù)的一些示例包括藍(lán)牙tm、射頻識(shí)別(rfid)、紅外數(shù)據(jù)協(xié)會(huì)(irda)、超寬帶(uwb)、紫蜂tm等等。
位置消息模塊是用于檢查或獲取服務(wù)器的位置消息的模塊。位置消息模塊的典型示例是gps(全球定位系統(tǒng))。根據(jù)當(dāng)前的技術(shù),gps模塊計(jì)算來自三個(gè)或更多衛(wèi)星的距離消息和準(zhǔn)確的時(shí)間消息并且對(duì)于計(jì)算的消息應(yīng)用三角測(cè)量法,從而根據(jù)經(jīng)度、緯度和高度準(zhǔn)確地計(jì)算三維當(dāng)前位置消息。當(dāng)前,用于計(jì)算位置和時(shí)間消息的方法使用三顆衛(wèi)星并且通過使用另外的一顆衛(wèi)星校正計(jì)算出的位置和時(shí)間消息的誤差。此外,gps模塊能夠通過實(shí)時(shí)地連續(xù)計(jì)算當(dāng)前位置消息來計(jì)算速度消息。
輸出單元被構(gòu)造為以視覺、音頻和/或觸覺方式提供輸出信號(hào)(例如,音頻信號(hào)、視頻或音頻信號(hào)、警報(bào)信號(hào)、振動(dòng)信號(hào)等等)。輸出單元可以包括顯示單元、音頻輸出模塊、警報(bào)單元等等。
顯示單元可以顯示在服務(wù)器10中處理的消息。例如,當(dāng)服務(wù)器10處于工作模式時(shí),顯示單元可以顯示例如,文本消息收發(fā)、多媒體文件下載等等相關(guān)的用戶界面(ui)或圖形用戶界面(gui)。當(dāng)服務(wù)器10處于視頻或音頻通話模式或者圖像捕獲模式時(shí),顯示單元可以顯示捕獲的圖像和/或接收的圖像、示出視頻或音頻或圖像以及相關(guān)功能的ui或gui等等。
同時(shí),當(dāng)顯示單元和觸摸板以層的形式彼此疊加以形成觸摸屏?xí)r,顯示單元可以用作輸入裝置和輸出裝置。顯示單元可以包括液晶顯示器(lcd)、薄膜晶體管lcd(tft-lcd)、有機(jī)發(fā)光二極管(oled)顯示器、柔性顯示器、三維(3d)顯示器等等中的至少一種。這些顯示器中的一些可以被構(gòu)造為透明狀以允許用戶從外部觀看,這可以稱為透明顯示器,典型的透明顯示器可以例如為toled(透明有機(jī)發(fā)光二極管)顯示器等等。根據(jù)特定想要的實(shí)施方式,服務(wù)器10可以包括兩個(gè)或更多顯示單元(或其它顯示裝置),例如,服務(wù)器可以包括外部顯示單元(未示出)和內(nèi)部顯示單元(未示出)。觸摸屏可用于檢測(cè)觸摸輸入壓力以及觸摸輸入位置和觸摸輸入面積。
音頻輸出模塊可以在服務(wù)器處于記錄模式、語言識(shí)別模式、廣播接收模式等等模式下時(shí),將無線通信單元接收的或者在存儲(chǔ)器中存儲(chǔ)的音頻數(shù)據(jù)轉(zhuǎn)換音頻信號(hào)并且輸出為聲音。而且,音頻輸出模塊可以提供與服務(wù)器10執(zhí)行的特定功能相關(guān)的音頻輸出(例如,呼叫信號(hào)接收聲音、消息接收聲音等等)。音頻輸出模塊可以包括揚(yáng)聲器、蜂鳴器等等。
警報(bào)單元可以提供輸出以將事件的發(fā)生通知給服務(wù)器10。典型的事件可以包括呼叫接收、消息接收、鍵信號(hào)輸入、觸摸輸入等等。除了音頻或視頻或音頻輸出之外,警報(bào)單元可以以不同的方式提供輸出以通知事件的發(fā)生。例如,警報(bào)單元可以以振動(dòng)的形式提供輸出,當(dāng)接收到呼叫、消息或一些其它進(jìn)入通信(incomingcommunication)時(shí),警報(bào)單元可以提供觸覺輸出(即,振動(dòng))以將其通知給用戶。通過提供這樣的觸覺輸出,即使在用戶的移動(dòng)電話處于用戶的口袋中時(shí),用戶也能夠識(shí)別出各種事件的發(fā)生。警報(bào)單元也可以經(jīng)由顯示單元或音頻輸出模塊提供通知事件的發(fā)生的輸出。
輸入單元可以根據(jù)用戶輸入的命令生成鍵輸入數(shù)據(jù)以控制服務(wù)器的各種操作。輸入單元允許用戶輸入各種類型的消息,并且可以包括鍵盤、鍋?zhàn)衅?、觸摸板(例如,檢測(cè)由于被接觸而導(dǎo)致的電阻、壓力、電容等等的變化的觸敏組件)、滾輪、搖桿等等。特別地,當(dāng)觸摸板以層的形式疊加在顯示單元上時(shí),可以形成觸摸屏。在本發(fā)明的實(shí)施例中,所述輸入單元包括觸控屏及水墨屏。
接口單元用作至少一個(gè)外部裝置與服務(wù)器10連接可以通過的接口。例如,外部裝置可以包括有線或無線頭戴式耳機(jī)端口、外部電源(或電池充電器)端口、有線或無線數(shù)據(jù)端口、存儲(chǔ)卡端口、用于連接具有識(shí)別模塊的裝置的端口、音頻輸入/輸出(i/o)端口、視頻或音頻i/o端口、耳機(jī)端口等等。識(shí)別模塊可以是存儲(chǔ)用于驗(yàn)證用戶使用服務(wù)器10的各種消息并且可以包括用戶識(shí)別模塊(uim)、客戶識(shí)別模塊(sim)、通用客戶識(shí)別模塊(usim)等等。另外,具有識(shí)別模塊的裝置(下面稱為"識(shí)別裝置")可以采取智能卡的形式,因此,識(shí)別裝置可以經(jīng)由端口或其它連接裝置與服務(wù)器10連接。接口單元可以用于接收來自外部裝置的輸入(例如,數(shù)據(jù)消息、電力等等)并且將接收到的輸入傳輸?shù)椒?wù)器10內(nèi)的一個(gè)或多個(gè)元件或者可以用于在服務(wù)器和外部裝置之間傳輸數(shù)據(jù)。
另外,當(dāng)服務(wù)器10與外部底座連接時(shí),接口單元可以用作允許通過其將電力從底座提供到服務(wù)器10的路徑或者可以用作允許從底座輸入的各種命令信號(hào)通過其傳輸?shù)椒?wù)器的路徑。從底座輸入的各種命令信號(hào)或電力可以用作用于識(shí)別服務(wù)器是否準(zhǔn)確地安裝在底座上的信號(hào)。
存儲(chǔ)器可以存儲(chǔ)由控制器執(zhí)行的處理和控制操作的軟件程序等等,或者可以暫時(shí)地存儲(chǔ)己經(jīng)輸出或?qū)⒁敵龅臄?shù)據(jù)(例如,電話簿、消息、靜態(tài)圖像、視頻或音頻等等)。而且,存儲(chǔ)器可以存儲(chǔ)關(guān)于當(dāng)觸摸施加到觸摸屏?xí)r輸出的各種方式的振動(dòng)和音頻信號(hào)的數(shù)據(jù)。
存儲(chǔ)器可以包括至少一種類型的存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)包括閃存、硬盤、多媒體卡、卡型存儲(chǔ)器(例如,sd或dx存儲(chǔ)器等等)、隨機(jī)訪問存儲(chǔ)器(ram)、靜態(tài)隨機(jī)訪問存儲(chǔ)器(sram)、只讀存儲(chǔ)器(rom)、電可擦除可編程只讀存儲(chǔ)器(eeprom)、可編程只讀存儲(chǔ)器(prom)、磁性存儲(chǔ)器、磁盤、光盤等等。而且,服務(wù)器10可以與通過網(wǎng)絡(luò)連接執(zhí)行存儲(chǔ)器的存儲(chǔ)功能的網(wǎng)絡(luò)存儲(chǔ)裝置協(xié)作。
控制器通常控制服務(wù)器的總體操作。例如,控制器執(zhí)行與語言通話、數(shù)據(jù)通信、視頻或音頻通話等等相關(guān)的控制和處理。另外,控制器可以包括用于再現(xiàn)(或回放)多媒體數(shù)據(jù)的多媒體模塊,多媒體模塊可以構(gòu)造在控制器內(nèi),或者可以構(gòu)造為與控制器分離??刂破骺梢詧?zhí)行模式識(shí)別處理,以將在觸摸屏上執(zhí)行的手寫輸入或者圖片繪制輸入識(shí)別為字符或圖像。
電源單元在控制器的控制下接收外部電力或內(nèi)部電力并且提供操作各元件和組件所需的適當(dāng)?shù)碾娏Α?/p>
這里描述的各種實(shí)施方式可以以使用例如計(jì)算機(jī)軟件、硬件或其任何組合的計(jì)算機(jī)可讀介質(zhì)來實(shí)施。對(duì)于硬件實(shí)施,這里描述的實(shí)施方式可以通過使用特定用途集成電路(asic)、數(shù)字信號(hào)處理器(dsp)、數(shù)字信號(hào)處理裝置(dspd)、可編程邏輯裝置(pld)、現(xiàn)場(chǎng)可編程門陣列(fpga)、處理器、控制器、微控制器、微處理器、被設(shè)計(jì)為執(zhí)行這里描述的功能的電子單元中的至少一種來實(shí)施,在一些情況下,這樣的實(shí)施方式可以在控制器中實(shí)施。對(duì)于軟件實(shí)施,諸如過程或功能的實(shí)施方式可以與允許執(zhí)行至少一種功能或操作的單獨(dú)的軟件模塊來實(shí)施。軟件代碼可以由以任何適當(dāng)?shù)木幊陶Z言編寫的軟件應(yīng)用程序(或程序)來實(shí)施,軟件代碼可以存儲(chǔ)在存儲(chǔ)器中并且由控制器執(zhí)行。
基于上述服務(wù)器硬件結(jié)構(gòu),提出本發(fā)明方法各個(gè)實(shí)施例。
基于上述服務(wù)器硬件結(jié)構(gòu)以及通信系統(tǒng),提出本發(fā)明方法各個(gè)實(shí)施例。
請(qǐng)參閱圖2,圖2是本發(fā)明實(shí)施例一服務(wù)器的功能模塊圖。圖2所示的服務(wù)器10包括查詢模塊101、劃分模塊102、導(dǎo)出模塊103。下面對(duì)功能模塊進(jìn)行詳細(xì)說明。
服務(wù)器10的查詢模塊101根據(jù)導(dǎo)出條件查詢所有待導(dǎo)出的數(shù)據(jù),并計(jì)算所有待導(dǎo)出數(shù)據(jù)的數(shù)量。服務(wù)器10的劃分模塊102將所有待導(dǎo)出數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)分頁。服務(wù)器10的導(dǎo)出模塊103將當(dāng)前數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,其中,數(shù)據(jù)分頁中的一條數(shù)據(jù)對(duì)應(yīng)預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。
舉例來說,導(dǎo)出條件是全省年齡在15歲至18歲的青少年資料,服務(wù)器10的查詢模塊101根據(jù)導(dǎo)出條件查詢?nèi)∷心挲g在15歲至18歲的青少年資料,假設(shè)計(jì)算出全省年齡在15歲至18歲的青少年資料有100萬條。假設(shè)每個(gè)數(shù)據(jù)分頁中存儲(chǔ)的數(shù)據(jù)有1000條,服務(wù)器10的劃分模塊102將100萬待導(dǎo)出數(shù)據(jù)劃分為1000個(gè)數(shù)據(jù)分頁,每個(gè)數(shù)據(jù)分頁中包括1000條數(shù)據(jù)。服務(wù)器10的導(dǎo)出模塊103依次導(dǎo)出1000個(gè)數(shù)據(jù)分頁,具體來說,將將第一個(gè)數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,其中,數(shù)據(jù)分頁中的一條數(shù)據(jù)對(duì)應(yīng)預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。將第1個(gè)數(shù)據(jù)分頁導(dǎo)出后,將第一個(gè)數(shù)據(jù)分頁所占內(nèi)存清空。然后,依次導(dǎo)出第2個(gè)數(shù)據(jù)分頁,并將第2個(gè)數(shù)據(jù)分頁所占內(nèi)存清空。直至導(dǎo)出第1000個(gè)數(shù)據(jù)分頁,將第100個(gè)數(shù)據(jù)分頁所占內(nèi)存清空。
補(bǔ)充說明的是,所有待導(dǎo)出數(shù)據(jù)的數(shù)量可以是百萬級(jí)的數(shù)量,通過數(shù)據(jù)分頁將大量的數(shù)據(jù)劃分為適合導(dǎo)出的多個(gè)分頁數(shù)據(jù),在導(dǎo)出過程中,通過依次將多個(gè)數(shù)據(jù)分頁導(dǎo)出,實(shí)現(xiàn)導(dǎo)出所有待導(dǎo)出數(shù)據(jù)的操作。進(jìn)一步說明的是,預(yù)設(shè)數(shù)據(jù)文件為用戶選擇或者系統(tǒng)默認(rèn)格式的文件,舉例來說,預(yù)設(shè)格式文件可以為微軟公司的excel文件。在微軟公司的excel2007及以上版本中,采用辦公公開標(biāo)記語言(officeopenextensiblemarkuplanguage,ooxml),其中,ooxml微軟公司為office2007開發(fā)的技術(shù)規(guī)范,現(xiàn)已成為國(guó)際文檔格式標(biāo)準(zhǔn),ooxml表格可以存儲(chǔ)到1048576條數(shù)據(jù),存儲(chǔ)量超過百萬。
本實(shí)施例提供的服務(wù)器能根據(jù)導(dǎo)出條件查詢所有待導(dǎo)出的數(shù)據(jù),并計(jì)算所有待導(dǎo)出數(shù)據(jù)的數(shù)量,將所有待導(dǎo)出數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)分頁,將當(dāng)前數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,其中,數(shù)據(jù)分頁中的一條數(shù)據(jù)對(duì)應(yīng)預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。這樣,服務(wù)器能將大量待導(dǎo)出數(shù)據(jù)劃分為數(shù)據(jù)分頁,通過依次導(dǎo)出數(shù)據(jù)分頁實(shí)現(xiàn)大量數(shù)據(jù)的快速導(dǎo)出,提高導(dǎo)出大量數(shù)據(jù)的效率。
請(qǐng)參閱圖3,圖3是本發(fā)明實(shí)施例二服務(wù)器的功能模塊圖。圖3所示的服務(wù)器10包括查詢模塊101、劃分模塊102、導(dǎo)出模塊103。其中,劃分模塊102包括計(jì)算模塊1021、生成模塊1022。下面對(duì)功能模塊進(jìn)行詳細(xì)說明。
服務(wù)器10的查詢模塊101根據(jù)導(dǎo)出條件查詢所有待導(dǎo)出的數(shù)據(jù),并計(jì)算所有待導(dǎo)出數(shù)據(jù)的數(shù)量。服務(wù)器10的劃分模塊102將所有待導(dǎo)出數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)分頁。服務(wù)器10的導(dǎo)出模塊103將當(dāng)前數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,其中,數(shù)據(jù)分頁中的一條數(shù)據(jù)對(duì)應(yīng)預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。
具體來說,劃分模塊包括計(jì)算模塊1021、生成模塊1022。計(jì)算模塊1021根據(jù)每個(gè)數(shù)據(jù)分頁的數(shù)據(jù)量和所有待導(dǎo)出的數(shù)據(jù)計(jì)算出待分頁的分頁數(shù)目。生成模塊1022根據(jù)分頁數(shù)目將所有待導(dǎo)出的數(shù)據(jù)劃分為對(duì)應(yīng)的數(shù)據(jù)分頁。
補(bǔ)充說明的是,所有待導(dǎo)出數(shù)據(jù)的數(shù)量可以是百萬級(jí)的數(shù)量,通過數(shù)據(jù)分頁將大量的數(shù)據(jù)劃分為適合導(dǎo)出的多個(gè)分頁數(shù)據(jù),在導(dǎo)出過程中,通過依次將多個(gè)數(shù)據(jù)分頁導(dǎo)出,實(shí)現(xiàn)導(dǎo)出所有待導(dǎo)出數(shù)據(jù)的操作。進(jìn)一步說明的是,預(yù)設(shè)數(shù)據(jù)文件為用戶選擇或者系統(tǒng)默認(rèn)格式的文件,舉例來說,預(yù)設(shè)格式文件可以為微軟公司的excel文件。
舉例來說,導(dǎo)出條件是全省年齡在15歲至18歲的青少年資料,服務(wù)器10的查詢模塊101根據(jù)導(dǎo)出條件查詢?nèi)∷心挲g在15歲至18歲的青少年資料,假設(shè)計(jì)算出全省年齡在15歲至18歲的青少年資料有100萬條。假設(shè)每個(gè)數(shù)據(jù)分頁中存儲(chǔ)的數(shù)據(jù)有1000條,服務(wù)器10的計(jì)算模塊1021根據(jù)每個(gè)數(shù)據(jù)分頁的數(shù)據(jù)量為1000個(gè)數(shù)據(jù)、和所有待導(dǎo)出的數(shù)據(jù)為100萬個(gè)數(shù)據(jù),計(jì)算出待分頁的分頁數(shù)目為1000個(gè)。生成模塊1022根據(jù)分頁數(shù)目為1000個(gè),將所有待導(dǎo)出的100萬數(shù)據(jù)劃分為1000個(gè)數(shù)據(jù)分頁。服務(wù)器10的導(dǎo)出模塊103依次導(dǎo)出1000個(gè)數(shù)據(jù)分頁,具體來說,將將第一個(gè)數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,其中,數(shù)據(jù)分頁中的一條數(shù)據(jù)對(duì)應(yīng)預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。將第1個(gè)數(shù)據(jù)分頁導(dǎo)出后,將第一個(gè)數(shù)據(jù)分頁所占內(nèi)存清空。然后,依次導(dǎo)出第2個(gè)數(shù)據(jù)分頁,并將第2個(gè)數(shù)據(jù)分頁所占內(nèi)存清空。直至導(dǎo)出第1000個(gè)數(shù)據(jù)分頁,將第100個(gè)數(shù)據(jù)分頁所占內(nèi)存清空。
本實(shí)施例提供的服務(wù)器能根據(jù)導(dǎo)出條件查詢所有待導(dǎo)出的數(shù)據(jù),并計(jì)算所有待導(dǎo)出數(shù)據(jù)的數(shù)量,將所有待導(dǎo)出數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)分頁,將當(dāng)前數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,并持久化到預(yù)設(shè)數(shù)據(jù)文件中。這樣,服務(wù)器能將大量待導(dǎo)出數(shù)據(jù)劃分為數(shù)據(jù)分頁,通過依次導(dǎo)出數(shù)據(jù)分頁實(shí)現(xiàn)大量數(shù)據(jù)的快速導(dǎo)出,提高導(dǎo)出大量數(shù)據(jù)的效率。
請(qǐng)參閱圖4,圖4是本發(fā)明實(shí)施例三服務(wù)器的功能模塊圖。圖4所示的服務(wù)器10包括查詢模塊101、劃分模塊102、導(dǎo)出模塊103、判斷模塊104、應(yīng)用模塊105、檢測(cè)模塊106。其中,劃分模塊102包括計(jì)算模塊1021、生成模塊1022。下面對(duì)功能模塊進(jìn)行詳細(xì)說明。
服務(wù)器10的查詢模塊101根據(jù)導(dǎo)出條件查詢所有待導(dǎo)出的數(shù)據(jù),并計(jì)算所有待導(dǎo)出數(shù)據(jù)的數(shù)量。服務(wù)器10的劃分模塊102將所有待導(dǎo)出數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)分頁。服務(wù)器10的導(dǎo)出模塊103將當(dāng)前數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,其中,數(shù)據(jù)分頁中的一條數(shù)據(jù)對(duì)應(yīng)預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。
具體來說,劃分模塊包括計(jì)算模塊1021、生成模塊1022。計(jì)算模塊1021根據(jù)每個(gè)數(shù)據(jù)分頁的數(shù)據(jù)量和所有待導(dǎo)出的數(shù)據(jù)計(jì)算出待分頁的分頁數(shù)目。生成模塊1022根據(jù)分頁數(shù)目將所有待導(dǎo)出的數(shù)據(jù)劃分為對(duì)應(yīng)的數(shù)據(jù)分頁。
補(bǔ)充說明的是,判斷模塊104判斷當(dāng)前數(shù)據(jù)分頁是否為最后一個(gè)的數(shù)據(jù)分頁。當(dāng)當(dāng)前數(shù)據(jù)分頁不為最后一個(gè)的數(shù)據(jù)分頁時(shí),應(yīng)用模塊105清空當(dāng)前數(shù)據(jù)分頁所占的內(nèi)存,將當(dāng)前數(shù)據(jù)分頁對(duì)應(yīng)的下一個(gè)數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,將已被導(dǎo)出數(shù)據(jù)所占的內(nèi)存清空。當(dāng)當(dāng)前數(shù)據(jù)分頁為最后一個(gè)的數(shù)據(jù)分頁時(shí),服務(wù)器10的查詢模塊101重新根據(jù)下一個(gè)導(dǎo)出條件查詢所有待導(dǎo)出的數(shù)據(jù),并計(jì)算所有待導(dǎo)出數(shù)據(jù)的數(shù)量。
進(jìn)一步補(bǔ)充說明的是,查詢模塊101根據(jù)瀏覽器客戶端輸入的導(dǎo)出條件確定百萬級(jí)以及百萬級(jí)以上的待導(dǎo)出的數(shù)據(jù)。劃分模塊102根據(jù)百萬級(jí)以及百萬級(jí)以上的待導(dǎo)出的數(shù)據(jù)以及數(shù)據(jù)分頁的數(shù)據(jù)量計(jì)算出待分頁的分頁的數(shù)目,根據(jù)分頁數(shù)目將所有待導(dǎo)出的數(shù)據(jù)劃分為對(duì)應(yīng)的數(shù)據(jù)分頁。導(dǎo)出模塊103依次將每個(gè)數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,將已被導(dǎo)出數(shù)據(jù)所占的內(nèi)存清空,其中,數(shù)據(jù)分頁中的每條數(shù)據(jù)對(duì)應(yīng)預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。
另外,檢測(cè)模塊106檢測(cè)內(nèi)存中存儲(chǔ)的數(shù)據(jù)是否達(dá)到預(yù)設(shè)數(shù)目,當(dāng)內(nèi)存中存儲(chǔ)的數(shù)據(jù)達(dá)到預(yù)設(shè)數(shù)目時(shí),導(dǎo)出模塊103將內(nèi)存中存儲(chǔ)的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,將已被導(dǎo)出數(shù)據(jù)所占的內(nèi)存清空,其中,內(nèi)存中存儲(chǔ)的每條數(shù)據(jù)對(duì)應(yīng)預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。
補(bǔ)充說明的是,所有待導(dǎo)出數(shù)據(jù)的數(shù)量可以是百萬級(jí)的數(shù)量,通過數(shù)據(jù)分頁將大量的數(shù)據(jù)劃分為適合導(dǎo)出的多個(gè)分頁數(shù)據(jù),在導(dǎo)出過程中,通過依次將多個(gè)數(shù)據(jù)分頁導(dǎo)出,實(shí)現(xiàn)導(dǎo)出所有待導(dǎo)出數(shù)據(jù)的操作。進(jìn)一步說明的是,預(yù)設(shè)數(shù)據(jù)文件為用戶選擇或者系統(tǒng)默認(rèn)格式的文件,舉例來說,預(yù)設(shè)格式文件可以為微軟公司的excel文件。
本實(shí)施例提供的服務(wù)器能根據(jù)導(dǎo)出條件查詢所有待導(dǎo)出的數(shù)據(jù),并計(jì)算所有待導(dǎo)出數(shù)據(jù)的數(shù)量,將所有待導(dǎo)出數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)分頁,將當(dāng)前數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,將已被導(dǎo)出數(shù)據(jù)所占的內(nèi)存清空,其中,數(shù)據(jù)分頁中的一條數(shù)據(jù)對(duì)應(yīng)預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。這樣,服務(wù)器能將大量待導(dǎo)出數(shù)據(jù)劃分為數(shù)據(jù)分頁,通過依次導(dǎo)出數(shù)據(jù)分頁實(shí)現(xiàn)大量數(shù)據(jù)的快速導(dǎo)出,提高導(dǎo)出大量數(shù)據(jù)的效率。
本發(fā)明還提供一種數(shù)據(jù)導(dǎo)出方法,該方法應(yīng)用于圖2-4所示的服務(wù)器10,下面對(duì)本實(shí)施例的數(shù)據(jù)導(dǎo)出方法進(jìn)行詳細(xì)介紹。
參閱圖5,圖5是本發(fā)明實(shí)施例四數(shù)據(jù)導(dǎo)出方法的流程圖。
在步驟s501中,服務(wù)器10的查詢模塊101根據(jù)導(dǎo)出條件查詢所有待導(dǎo)出的數(shù)據(jù),并計(jì)算所有待導(dǎo)出數(shù)據(jù)的數(shù)量。
在步驟s502中,服務(wù)器10的劃分模塊102將所有待導(dǎo)出數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)分頁。
在步驟s503中,服務(wù)器10的導(dǎo)出模塊103將當(dāng)前數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,其中,數(shù)據(jù)分頁中的一條數(shù)據(jù)對(duì)應(yīng)預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。
補(bǔ)充說明的是,所有待導(dǎo)出數(shù)據(jù)的數(shù)量可以是百萬級(jí)的數(shù)量,通過數(shù)據(jù)分頁將大量的數(shù)據(jù)劃分為適合導(dǎo)出的多個(gè)分頁數(shù)據(jù),在導(dǎo)出過程中,通過依次將多個(gè)數(shù)據(jù)分頁導(dǎo)出,實(shí)現(xiàn)導(dǎo)出所有待導(dǎo)出數(shù)據(jù)的操作。進(jìn)一步說明的是,預(yù)設(shè)數(shù)據(jù)文件為用戶選擇或者系統(tǒng)默認(rèn)格式的文件,舉例來說,預(yù)設(shè)格式文件可以為微軟公司的excel文件。
舉例來說,導(dǎo)出條件是全省年齡在55歲至60歲的老年人資料,服務(wù)器10的查詢模塊101根據(jù)導(dǎo)出條件查詢?nèi)∷心挲g在55歲至60歲的老年人資料,假設(shè)計(jì)算出全省年齡在55歲至60歲的老年人資料有200萬條。假設(shè)每個(gè)數(shù)據(jù)分頁中存儲(chǔ)的數(shù)據(jù)有2000條,服務(wù)器10的劃分模塊102將200萬待導(dǎo)出數(shù)據(jù)劃分為1000個(gè)數(shù)據(jù)分頁,每個(gè)數(shù)據(jù)分頁中包括2000條數(shù)據(jù)。服務(wù)器10的導(dǎo)出模塊103依次導(dǎo)出1000個(gè)數(shù)據(jù)分頁,具體來說,將將第一個(gè)數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,其中,數(shù)據(jù)分頁中的一條數(shù)據(jù)對(duì)應(yīng)預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。將第1個(gè)數(shù)據(jù)分頁導(dǎo)出后,將第一個(gè)數(shù)據(jù)分頁所占內(nèi)存清空。然后,依次導(dǎo)出第2個(gè)數(shù)據(jù)分頁,并將第2個(gè)數(shù)據(jù)分頁所占內(nèi)存清空。直至導(dǎo)出第1000個(gè)數(shù)據(jù)分頁,將第1000個(gè)數(shù)據(jù)分頁所占內(nèi)存清空。
本實(shí)施例提供的數(shù)據(jù)導(dǎo)出方法能根據(jù)導(dǎo)出條件查詢所有待導(dǎo)出的數(shù)據(jù),并計(jì)算所有待導(dǎo)出數(shù)據(jù)的數(shù)量,將所有待導(dǎo)出數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)分頁,將當(dāng)前數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流。這樣,數(shù)據(jù)導(dǎo)出方法能將大量待導(dǎo)出數(shù)據(jù)劃分為數(shù)據(jù)分頁,通過依次導(dǎo)出數(shù)據(jù)分頁實(shí)現(xiàn)大量數(shù)據(jù)的快速導(dǎo)出,提高導(dǎo)出大量數(shù)據(jù)的效率。
參閱圖6,圖6是本發(fā)明實(shí)施例四數(shù)據(jù)導(dǎo)出方法的流程圖。該方法應(yīng)用于圖2-4所示的服務(wù)器10,下面對(duì)本實(shí)施例的數(shù)據(jù)導(dǎo)出方法進(jìn)行詳細(xì)介紹。
在步驟s601中,服務(wù)器10的查詢模塊101根據(jù)導(dǎo)出條件查詢所有待導(dǎo)出的數(shù)據(jù),并計(jì)算所有待導(dǎo)出數(shù)據(jù)的數(shù)量。
在步驟s602中,計(jì)算模塊1021根據(jù)每個(gè)數(shù)據(jù)分頁的數(shù)據(jù)量和所有待導(dǎo)出的數(shù)據(jù)計(jì)算出待分頁的分頁數(shù)目。
在步驟s603中,生成模塊1022根據(jù)分頁數(shù)目將所有待導(dǎo)出的數(shù)據(jù)劃分為對(duì)應(yīng)的數(shù)據(jù)分頁。
在步驟s604中,服務(wù)器10的導(dǎo)出模塊103將當(dāng)前數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,其中,數(shù)據(jù)分頁中的一條數(shù)據(jù)對(duì)應(yīng)預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。
補(bǔ)充說明的是,所有待導(dǎo)出數(shù)據(jù)的數(shù)量可以是百萬級(jí)的數(shù)量,通過數(shù)據(jù)分頁將大量的數(shù)據(jù)劃分為適合導(dǎo)出的多個(gè)分頁數(shù)據(jù),在導(dǎo)出過程中,通過依次將多個(gè)數(shù)據(jù)分頁導(dǎo)出,實(shí)現(xiàn)導(dǎo)出所有待導(dǎo)出數(shù)據(jù)的操作。進(jìn)一步說明的是,預(yù)設(shè)數(shù)據(jù)文件為用戶選擇或者系統(tǒng)默認(rèn)格式的文件,舉例來說,預(yù)設(shè)格式文件可以為微軟公司的excel文件。
舉例來說,導(dǎo)出條件是全省年齡在25歲至40歲的中年人資料,服務(wù)器10的查詢模塊101根據(jù)導(dǎo)出條件查詢?nèi)∷心挲g在25歲至40歲的中年人資料,假設(shè)計(jì)算出全省年齡25歲至40歲的中年人資料有300萬條。假設(shè)每個(gè)數(shù)據(jù)分頁中存儲(chǔ)的數(shù)據(jù)有2000條,服務(wù)器10的計(jì)算模塊1021根據(jù)每個(gè)數(shù)據(jù)分頁的數(shù)據(jù)量為2000個(gè)數(shù)據(jù)、和所有待導(dǎo)出的數(shù)據(jù)為300萬個(gè)數(shù)據(jù),計(jì)算出待分頁的分頁數(shù)目為1500個(gè)。生成模塊1022根據(jù)分頁數(shù)目為1500個(gè),將所有待導(dǎo)出的300萬數(shù)據(jù)劃分為1500個(gè)數(shù)據(jù)分頁。服務(wù)器10的導(dǎo)出模塊103依次導(dǎo)出1500個(gè)數(shù)據(jù)分頁,具體來說,將將第一個(gè)數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,其中,數(shù)據(jù)分頁中的一條數(shù)據(jù)對(duì)應(yīng)預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。將第1個(gè)數(shù)據(jù)分頁導(dǎo)出后,將第一個(gè)數(shù)據(jù)分頁所占內(nèi)存清空。然后,依次導(dǎo)出第2個(gè)數(shù)據(jù)分頁,并將第2個(gè)數(shù)據(jù)分頁所占內(nèi)存清空。直至導(dǎo)出第1500個(gè)數(shù)據(jù)分頁,將第1500個(gè)數(shù)據(jù)分頁所占內(nèi)存清空。
本實(shí)施例提供的數(shù)據(jù)導(dǎo)出方法能根據(jù)導(dǎo)出條件查詢所有待導(dǎo)出的數(shù)據(jù),并計(jì)算所有待導(dǎo)出數(shù)據(jù)的數(shù)量,將所有待導(dǎo)出數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)分頁,將當(dāng)前數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,將已被導(dǎo)出數(shù)據(jù)所占的內(nèi)存清空。這樣,數(shù)據(jù)導(dǎo)出方法能將大量待導(dǎo)出數(shù)據(jù)劃分為數(shù)據(jù)分頁,通過依次導(dǎo)出數(shù)據(jù)分頁實(shí)現(xiàn)大量數(shù)據(jù)的快速導(dǎo)出,提高導(dǎo)出大量數(shù)據(jù)的效率。
參閱圖7,圖7是本發(fā)明實(shí)施例六數(shù)據(jù)導(dǎo)出方法的流程圖。該方法應(yīng)用于圖2-4所示的服務(wù)器10,下面對(duì)本實(shí)施例的數(shù)據(jù)導(dǎo)出方法進(jìn)行詳細(xì)介紹。
在步驟s701中,服務(wù)器10的查詢模塊101根據(jù)導(dǎo)出條件查詢所有待導(dǎo)出的數(shù)據(jù),并計(jì)算所有待導(dǎo)出數(shù)據(jù)的數(shù)量。
在步驟s702中,服務(wù)器10的劃分模塊102將所有待導(dǎo)出數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)分頁。
具體來說,步驟s702包括:計(jì)算模塊1021根據(jù)每個(gè)數(shù)據(jù)分頁的數(shù)據(jù)量和所有待導(dǎo)出的數(shù)據(jù)計(jì)算出待分頁的分頁數(shù)目;生成模塊1022根據(jù)分頁數(shù)目將所有待導(dǎo)出的數(shù)據(jù)劃分為對(duì)應(yīng)的數(shù)據(jù)分頁。
在步驟s703中,服務(wù)器10的導(dǎo)出模塊103將當(dāng)前數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,其中,數(shù)據(jù)分頁中的一條數(shù)據(jù)對(duì)應(yīng)預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。
在步驟s704中,判斷模塊104判斷當(dāng)前數(shù)據(jù)分頁是否為最后一個(gè)的數(shù)據(jù)分頁。
在步驟s705中,當(dāng)當(dāng)前數(shù)據(jù)分頁不為最后一個(gè)的數(shù)據(jù)分頁時(shí),應(yīng)用模塊105清空當(dāng)前數(shù)據(jù)分頁所占的內(nèi)存。
在步驟s706中,將當(dāng)前數(shù)據(jù)分頁對(duì)應(yīng)的下一個(gè)數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,將已被導(dǎo)出數(shù)據(jù)所占的內(nèi)存清空,其中,數(shù)據(jù)分頁中的一條數(shù)據(jù)對(duì)應(yīng)預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。
當(dāng)當(dāng)前數(shù)據(jù)分頁為最后一個(gè)的數(shù)據(jù)分頁時(shí),進(jìn)入步驟s701,服務(wù)器10的查詢模塊101重新根據(jù)下一個(gè)導(dǎo)出條件查詢所有待導(dǎo)出的數(shù)據(jù),并計(jì)算所有待導(dǎo)出數(shù)據(jù)的數(shù)量。
舉例來說,導(dǎo)出條件是全省年齡在25歲至40歲的中年人資料,服務(wù)器10的查詢模塊101根據(jù)導(dǎo)出條件查詢?nèi)∷心挲g在25歲至40歲的中年人資料,假設(shè)計(jì)算出全省年齡25歲至40歲的中年人資料有300萬條。假設(shè)每個(gè)數(shù)據(jù)分頁中存儲(chǔ)的數(shù)據(jù)有2000條,服務(wù)器10的計(jì)算模塊1021根據(jù)每個(gè)數(shù)據(jù)分頁的數(shù)據(jù)量為2000個(gè)數(shù)據(jù)、和所有待導(dǎo)出的數(shù)據(jù)為300萬個(gè)數(shù)據(jù),計(jì)算出待分頁的分頁數(shù)目為1500個(gè)。生成模塊1022根據(jù)分頁數(shù)目為1500個(gè),將所有待導(dǎo)出的300萬數(shù)據(jù)劃分為1500個(gè)數(shù)據(jù)分頁。服務(wù)器10的導(dǎo)出模塊103依次導(dǎo)出1500個(gè)數(shù)據(jù)分頁,具體來說,將將第一個(gè)數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,其中,數(shù)據(jù)分頁中的一條數(shù)據(jù)對(duì)應(yīng)預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。將第1個(gè)數(shù)據(jù)分頁導(dǎo)出后,將第一個(gè)數(shù)據(jù)分頁所占內(nèi)存清空。然后,判斷模塊104判斷當(dāng)前的第1個(gè)數(shù)據(jù)分頁是否為最后一個(gè)的數(shù)據(jù)分頁,當(dāng)判斷出當(dāng)前的第1個(gè)數(shù)據(jù)分頁不為最后一個(gè)數(shù)據(jù)分頁時(shí),導(dǎo)出第2個(gè)數(shù)據(jù)分頁,并將第2個(gè)數(shù)據(jù)分頁所占內(nèi)存清空。直至導(dǎo)出第1500個(gè)數(shù)據(jù)分頁,將第1500個(gè)數(shù)據(jù)分頁所占內(nèi)存清空,判斷模塊104判斷當(dāng)前的第1500個(gè)數(shù)據(jù)分頁為最后一個(gè)的數(shù)據(jù)分頁,確定將所有待導(dǎo)出的300萬數(shù)據(jù)導(dǎo)出完畢。
本實(shí)施例提供的數(shù)據(jù)導(dǎo)出方法能根據(jù)導(dǎo)出條件查詢所有待導(dǎo)出的數(shù)據(jù),并計(jì)算所有待導(dǎo)出數(shù)據(jù)的數(shù)量,將所有待導(dǎo)出數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)分頁,將當(dāng)前數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,將已被導(dǎo)出數(shù)據(jù)所占的內(nèi)存清空。這樣,數(shù)據(jù)導(dǎo)出方法能將大量待導(dǎo)出數(shù)據(jù)劃分為數(shù)據(jù)分頁,通過依次導(dǎo)出數(shù)據(jù)分頁實(shí)現(xiàn)大量數(shù)據(jù)的快速導(dǎo)出,提高導(dǎo)出大量數(shù)據(jù)的效率。
參閱圖8,圖8是本發(fā)明實(shí)施例七數(shù)據(jù)導(dǎo)出方法的流程圖。該方法應(yīng)用于圖2-4所示的服務(wù)器10,下面對(duì)本實(shí)施例的數(shù)據(jù)導(dǎo)出方法進(jìn)行詳細(xì)介紹。
在步驟s801中,查詢模塊101根據(jù)瀏覽器客戶端輸入的導(dǎo)出條件確定百萬級(jí)以及百萬級(jí)以上的待導(dǎo)出的數(shù)據(jù)。
在步驟s802中,劃分模塊102根據(jù)百萬級(jí)以及百萬級(jí)以上的待導(dǎo)出的數(shù)據(jù)以及數(shù)據(jù)分頁的數(shù)據(jù)量計(jì)算出待分頁的分頁的數(shù)目。
在步驟s803中,根據(jù)分頁數(shù)目將所有待導(dǎo)出的數(shù)據(jù)劃分為對(duì)應(yīng)的數(shù)據(jù)分頁。
在步驟s804中,導(dǎo)出模塊103依次將每個(gè)數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,將已被導(dǎo)出數(shù)據(jù)所占的內(nèi)存清空,其中,數(shù)據(jù)分頁中的每條數(shù)據(jù)對(duì)應(yīng)預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。
補(bǔ)充說明的是,所有待導(dǎo)出數(shù)據(jù)的數(shù)量可以是百萬級(jí)的數(shù)量,通過數(shù)據(jù)分頁將大量的數(shù)據(jù)劃分為適合導(dǎo)出的多個(gè)分頁數(shù)據(jù),在導(dǎo)出過程中,通過依次將多個(gè)數(shù)據(jù)分頁導(dǎo)出,實(shí)現(xiàn)導(dǎo)出所有待導(dǎo)出數(shù)據(jù)的操作。進(jìn)一步說明的是,預(yù)設(shè)數(shù)據(jù)文件為用戶選擇或者系統(tǒng)默認(rèn)格式的文件,舉例來說,預(yù)設(shè)格式文件可以為微軟公司的excel文件。
舉例來說,瀏覽器客戶端輸入服務(wù)器10的導(dǎo)出條件是全省年齡在25歲至40歲的中年人資料,服務(wù)器10的查詢模塊101根據(jù)導(dǎo)出條件查詢?nèi)∷心挲g在25歲至40歲的中年人資料,假設(shè)計(jì)算出全省年齡25歲至40歲的中年人資料有300萬條。假設(shè)每個(gè)數(shù)據(jù)分頁中存儲(chǔ)的數(shù)據(jù)有2000條,服務(wù)器10的計(jì)算模塊1021根據(jù)每個(gè)數(shù)據(jù)分頁的數(shù)據(jù)量為2000個(gè)數(shù)據(jù)、和所有待導(dǎo)出的數(shù)據(jù)為300萬個(gè)數(shù)據(jù),計(jì)算出待分頁的分頁數(shù)目為1500個(gè)。生成模塊1022根據(jù)分頁數(shù)目為1500個(gè),將所有待導(dǎo)出的300萬數(shù)據(jù)劃分為1500個(gè)數(shù)據(jù)分頁。服務(wù)器10的導(dǎo)出模塊103依次導(dǎo)出1500個(gè)數(shù)據(jù)分頁,具體來說,將將第一個(gè)數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,其中,數(shù)據(jù)分頁中的一條數(shù)據(jù)對(duì)應(yīng)預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。將第1個(gè)數(shù)據(jù)分頁導(dǎo)出后,將第一個(gè)數(shù)據(jù)分頁所占內(nèi)存清空。然后,依次導(dǎo)出第2個(gè)數(shù)據(jù)分頁,并將第2個(gè)數(shù)據(jù)分頁所占內(nèi)存清空。直至導(dǎo)出第1500個(gè)數(shù)據(jù)分頁,將第1500個(gè)數(shù)據(jù)分頁所占內(nèi)存清空。
本實(shí)施例提供的數(shù)據(jù)導(dǎo)出方法能根據(jù)導(dǎo)出條件查詢所有待導(dǎo)出的數(shù)據(jù),并計(jì)算所有待導(dǎo)出數(shù)據(jù)的數(shù)量,將所有待導(dǎo)出數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)分頁,將當(dāng)前數(shù)據(jù)分頁中的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,將已被導(dǎo)出數(shù)據(jù)所占的內(nèi)存清空。這樣,服數(shù)據(jù)導(dǎo)出方法能將大量待導(dǎo)出數(shù)據(jù)劃分為數(shù)據(jù)分頁,通過依次導(dǎo)出數(shù)據(jù)分頁實(shí)現(xiàn)大量數(shù)據(jù)的快速導(dǎo)出,提高導(dǎo)出大量數(shù)據(jù)的效率。
參閱圖9,圖9是本發(fā)明實(shí)施例八數(shù)據(jù)導(dǎo)出方法的流程圖。該方法應(yīng)用于圖2-4所示的服務(wù)器10,下面對(duì)本實(shí)施例的數(shù)據(jù)導(dǎo)出方法進(jìn)行詳細(xì)介紹。
在步驟s901中,檢測(cè)模塊106檢測(cè)內(nèi)存中存儲(chǔ)的數(shù)據(jù)是否達(dá)到預(yù)設(shè)數(shù)目。
在步驟s902中,當(dāng)內(nèi)存中存儲(chǔ)的數(shù)據(jù)達(dá)到預(yù)設(shè)數(shù)目時(shí),導(dǎo)出模塊103將內(nèi)存中存儲(chǔ)的每條數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制流,并持久化到預(yù)設(shè)數(shù)據(jù)文件中,將已被導(dǎo)出數(shù)據(jù)所占的內(nèi)存清空,其中,內(nèi)存中存儲(chǔ)的每條數(shù)據(jù)對(duì)應(yīng)預(yù)設(shè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)行節(jié)點(diǎn)。
本實(shí)施例提供的數(shù)據(jù)導(dǎo)出方法能檢測(cè)存儲(chǔ)的數(shù)據(jù)是否達(dá)到了預(yù)設(shè)數(shù)目,當(dāng)達(dá)到預(yù)設(shè)數(shù)目時(shí),導(dǎo)出存儲(chǔ)的數(shù)據(jù),將已被導(dǎo)出數(shù)據(jù)所占的內(nèi)存清空,能實(shí)時(shí)導(dǎo)出大量數(shù)據(jù)、清空已被導(dǎo)出數(shù)據(jù)所占內(nèi)存空間,實(shí)現(xiàn)大量數(shù)據(jù)的快速導(dǎo)出,提高導(dǎo)出大量數(shù)據(jù)的效率。
以上僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。