亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于動(dòng)態(tài)表格格式的數(shù)據(jù)上報(bào)平臺(tái)的研發(fā)

        2015-01-29 02:57:38肖招娣
        電子設(shè)計(jì)工程 2015年9期
        關(guān)鍵詞:數(shù)據(jù)庫(kù)

        肖招娣

        (廣東電網(wǎng)有限責(zé)任公司 佛山供電局,廣東 佛山 528000)

        目前公司內(nèi)部基于B/S架構(gòu)的信息系統(tǒng)所具備的數(shù)據(jù)收集功能均為基于固定庫(kù)表結(jié)構(gòu)的。這存在5個(gè)問(wèn)題:1)需要重復(fù)開(kāi)發(fā)多個(gè)不同的模塊,而這些模塊的代碼會(huì)存在高度的冗余和重復(fù),實(shí)際上做了大量重復(fù)性的工作,浪費(fèi)了軟件開(kāi)發(fā)的人力資源。2)靈活性很差,無(wú)法滿(mǎn)足企業(yè)日常運(yùn)作所需的不同表格的在線(xiàn)數(shù)據(jù)收集需求,迫使員工通過(guò)電子郵件等線(xiàn)下方式進(jìn)行收集、下載和人工合并,浪費(fèi)了大量的勞動(dòng)力。3)對(duì)于復(fù)雜的表格,人工合并過(guò)程容易出錯(cuò)。4)沒(méi)有集中存放,人員換崗或者離職后,容易造成數(shù)據(jù)丟失,不便于查詢(xún)歷史數(shù)據(jù)和追溯。5)沒(méi)有備份,一旦數(shù)據(jù)收集者個(gè)人電腦硬件出現(xiàn)不可恢復(fù)的故障,收集者需要重新匯總數(shù)據(jù)。

        本文研發(fā)的基于動(dòng)態(tài)表格格式的數(shù)據(jù)上報(bào)平臺(tái),用戶(hù)可以自身的需要定制數(shù)據(jù)庫(kù)表結(jié)構(gòu),線(xiàn)上發(fā)布數(shù)據(jù)收集模板,通過(guò)平臺(tái)上報(bào)數(shù)據(jù)自動(dòng)匯總數(shù)據(jù)?;趧?dòng)態(tài)表格格式,極大地增強(qiáng)了它的靈活性,擴(kuò)大了它的應(yīng)用范圍。

        1 系統(tǒng)架構(gòu)

        該平臺(tái)采用基于Struts 2的MVC架構(gòu)。用戶(hù)通過(guò)JSP/html發(fā)起請(qǐng)求,通過(guò)struts 2的配置文件,調(diào)用對(duì)應(yīng)的Action,并將結(jié)果反饋給JSP/html進(jìn)行展示[3-4]。

        使用MVC架構(gòu),踐行“高內(nèi)聚、低耦合”的原則,使得該平臺(tái)具有良好的可擴(kuò)展性,易于維護(hù)和修改,提高代碼的重復(fù)利用率,降低代碼冗余度。

        2 系統(tǒng)功能

        系統(tǒng)功能架構(gòu)圖如圖3所示。

        3 關(guān)鍵技術(shù)

        3.1 POI事件模式讀取Excel 2007,奠定海量數(shù)據(jù)處理基礎(chǔ)

        圖1 基于Struts 2的MVC業(yè)務(wù)處理流程Fig.1 MVCbusiness process based on Struts 2

        圖2 系統(tǒng)整體架構(gòu)Fig.2 The overall system architecture

        圖3 系統(tǒng)功能架構(gòu)圖Fig.3 Function architecture of the system

        目前,處理excel讀寫(xiě)的開(kāi)源 API包括 Jxl和 POI[1]。Jxl(Java Excel API)只支持Excel 2003以下的版本,POI可支持更高的Excel版本2007。通常情況下只是使用POI的用戶(hù)模式進(jìn)行Excel的讀取,這種方式同Jxl的使用很類(lèi)似,使用簡(jiǎn)單,都是將文件一次性讀到內(nèi)存,文件小的時(shí)候,沒(méi)有什么問(wèn)題,當(dāng)文件大的時(shí)候,就會(huì)出現(xiàn)內(nèi)存溢出問(wèn)題。該平臺(tái)對(duì)excel 2007進(jìn)行處理的時(shí)候,采用POI的事件驅(qū)動(dòng)模式.拿Excel 2007來(lái)說(shuō),其內(nèi)容采用XML的格式來(lái)存儲(chǔ),所以處理Excel就是解析XML,使用事件驅(qū)動(dòng)模式解析讀取XML文檔時(shí),并沒(méi)有將整個(gè)文檔讀入內(nèi)存,而是按順序?qū)⒄麄€(gè)文檔解析完,在解析過(guò)程中,會(huì)主動(dòng)產(chǎn)生事件交給程序中相應(yīng)的處理函數(shù)來(lái)處理當(dāng)前內(nèi)容。因此這種方式對(duì)系統(tǒng)資源要求不高,可以處理海量數(shù)據(jù)。因此,該平臺(tái)初步具備了處理海量數(shù)據(jù)的基礎(chǔ)。

        3.2 動(dòng)態(tài)表格設(shè)計(jì)中數(shù)據(jù)導(dǎo)入過(guò)程類(lèi)型問(wèn)題

        動(dòng)態(tài)表格設(shè)計(jì),意味著表格中包含的數(shù)據(jù)的列數(shù)以及每一列的屬性是變化的。常規(guī)的Excel數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)中的方法是針對(duì)固定的表格設(shè)置進(jìn)行的,這種情形只要對(duì)每一列的數(shù)據(jù)結(jié)合其類(lèi)型處理即可。為了避免動(dòng)態(tài)表格格式的數(shù)據(jù)上報(bào)過(guò)程數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)時(shí)類(lèi)型不匹配的問(wèn)題,以及復(fù)雜的類(lèi)型處理邏輯,該平臺(tái)采用了中間文件類(lèi)型的方法解決該問(wèn)題,即先將Excel數(shù)據(jù)讀取出來(lái),寫(xiě)入到不帶格式的文件中,再通過(guò)命令將中間文件中的數(shù)據(jù)導(dǎo)入到目標(biāo)數(shù)據(jù)庫(kù)中。

        3.3 創(chuàng)建數(shù)據(jù)庫(kù)過(guò)程中字段長(zhǎng)度的設(shè)定

        根據(jù)該平臺(tái)的設(shè)計(jì),需要定義一個(gè)模板發(fā)布格式,由用戶(hù)填寫(xiě)完后在平臺(tái)上發(fā)布,發(fā)布過(guò)程在后臺(tái)的操作即創(chuàng)建數(shù)據(jù)庫(kù)表并定義其結(jié)構(gòu),這就存在中文字符串長(zhǎng)度定義問(wèn)題,最理想的狀態(tài)是正好夠用而又不浪費(fèi)資源。該平臺(tái)采用的是UTF-8的編碼方式,即一個(gè)中文字符占3個(gè)字節(jié)[2]。解決這個(gè)問(wèn)題的方法是,由模板發(fā)布者估算對(duì)應(yīng)列包含中文字符的最大長(zhǎng)度,而后通過(guò)相關(guān)的轉(zhuǎn)換確定每個(gè)字符串型的字段的長(zhǎng)度。

        3.4 靈活解決數(shù)據(jù)修改、模板修改過(guò)程中權(quán)限的控制

        由于該平臺(tái)的數(shù)據(jù)上報(bào)均是以部門(mén)為單位進(jìn)行的,因此沒(méi)有必要采用面向用戶(hù)的權(quán)限控制顆粒度。在滿(mǎn)足基本需求的情況下,為加速開(kāi)發(fā)進(jìn)度,對(duì)平臺(tái)數(shù)據(jù)修改、模板修改過(guò)程中權(quán)限的控制采用的方式是比對(duì)當(dāng)前用戶(hù)和對(duì)應(yīng)數(shù)據(jù)、模板的上傳者的用戶(hù)名、MAC地址信息等,當(dāng)二者一致的時(shí)候,予以修改。

        3.5 通過(guò)Struts 2簡(jiǎn)化業(yè)務(wù)控制代碼

        以往在開(kāi)發(fā)簡(jiǎn)單的web應(yīng)用時(shí),考慮到業(yè)務(wù)邏輯不復(fù)雜,一般情況下使用servlet充當(dāng)控制器,這種方法的弊端是代碼量比較大,數(shù)據(jù)從jsp/html傳遞到控制器以及網(wǎng)頁(yè)的跳轉(zhuǎn),均需要通過(guò)代碼實(shí)現(xiàn)。為簡(jiǎn)化開(kāi)發(fā)過(guò)程,該平臺(tái)使用了Struts 2充當(dāng)控制器,通過(guò)簡(jiǎn)單的配置文件[5-6],實(shí)現(xiàn)業(yè)務(wù)邏輯控制,大大簡(jiǎn)化了實(shí)現(xiàn)過(guò)程。

        4 結(jié)束語(yǔ)

        企業(yè)日常運(yùn)作過(guò)程中需要收集大量的數(shù)據(jù),為了解決線(xiàn)下數(shù)據(jù)上報(bào)存在的問(wèn)題,研發(fā)了基于動(dòng)態(tài)表格格式的數(shù)據(jù)上報(bào)平臺(tái)。該平臺(tái):

        1)對(duì)不同版本的Excel文件分而治之。使用了jxl和POI開(kāi)源的Java API源碼庫(kù),分別解決了Excel 2003和Excel 2007的讀寫(xiě)問(wèn)題。

        2)引入POI事件驅(qū)動(dòng)模式對(duì)Excel文件進(jìn)行處理,使得該平臺(tái)具備了海量數(shù)據(jù)處理的基礎(chǔ)。

        3)解決了動(dòng)態(tài)數(shù)據(jù)庫(kù)結(jié)構(gòu)數(shù)據(jù)導(dǎo)入問(wèn)題。由于數(shù)據(jù)導(dǎo)入過(guò)程中,由于各類(lèi)表格的列數(shù)及每一列的屬性相差甚遠(yuǎn),無(wú)法通過(guò)固定的方式處理。該平臺(tái)使用了具備了動(dòng)態(tài)數(shù)據(jù)庫(kù)表結(jié)構(gòu)自適應(yīng)能力。

        4)通過(guò)中間文件,避免了數(shù)據(jù)批量導(dǎo)入過(guò)程中復(fù)雜的數(shù)據(jù)處理邏輯。

        [1]POI讀取海量數(shù)據(jù)[EB/OL]http://blog.csdn.net/jinshuaiwang/article/details/15499685.

        [2]Java中文字符所占的字節(jié)數(shù)[EB/OL]http://www.blogjava.net/qileilove/archive/2014/02/26/410319.html.

        [3]struts2處理請(qǐng)求的過(guò)程分析[EB/OL]http://www.2cto.com/kf/201312/262962.html.

        [4]struts2——基礎(chǔ)流程[EB/OL]http://www.cnblogs.com/jacksun 1978/archive/2012/06/29/2570087.html.

        [5]王偉平,等.Struts 2完全學(xué)習(xí)手冊(cè)[M].北京:清華大學(xué)出版社,2011.

        [6]陳亞輝,繆勇.Struts2+Spring+Hibernate框架技術(shù)與項(xiàng)目實(shí)戰(zhàn)[M].北京:清華大學(xué)出版社,2012.

        猜你喜歡
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        兩種新的非確定數(shù)據(jù)庫(kù)上的Top-K查詢(xún)
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        免费人成网站在线观看欧美| 人妖系列在线免费观看| 漂亮人妻出轨中文字幕| 亚洲人成影院在线无码按摩店| 久久人妻少妇嫩草av蜜桃| 国产成人永久在线播放| 狠狠综合久久av一区二区三区 | 国模冰莲极品自慰人体| 日韩精品中文字幕无码一区 | 亚洲av无码一区二区乱子伦as| 国内精品91久久久久| 日韩美女av一区二区三区四区| 久久婷婷五月国产色综合| 亚洲免费观看在线视频| 国产成人精品一区二免费网站| 亚洲综合中文字幕日韩| 欧美一性一乱一交一视频| 一区一级三级在线观看| 久久久人妻一区精品久久久| 丰满人妻久久中文字幕| 午夜无码片在线观看影视| 色欲AV成人无码精品无码| 中文字幕亚洲综合久久久| 亚洲夜夜性无码| a在线观看免费网站大全| 中文字幕日本人妻一区| 亚洲国产国语在线对白观看| 亚洲中文字幕久在线| 国产精品久久久久影视不卡| 字幕网中文字幕精品一区| 久久亚洲色一区二区三区| 日本www一道久久久免费榴莲| 青青草国内视频在线观看| 一本色道久久88加勒比一| 曰批免费视频播放免费直播| 国产精品伦人视频免费看| 日本一区二区三区区视频| 亚洲欧美国产国产综合一区| 精品欧美久久99久久久另类专区| 97人妻精品一区二区三区免费| 亚洲精品动漫免费二区|