国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Web應(yīng)用中使用Excel進(jìn)行批量處理的模式設(shè)計(jì)

2010-11-07 08:40:44閆海珍李緒成大連東軟信息學(xué)院116023
中國科技信息 2010年9期
關(guān)鍵詞:批量代碼模板

閆海珍 李緒成 大連東軟信息學(xué)院 116023

Web應(yīng)用中使用Excel進(jìn)行批量處理的模式設(shè)計(jì)

閆海珍 李緒成 大連東軟信息學(xué)院 116023

Web應(yīng)用中經(jīng)常需要使用Excel存儲(chǔ)數(shù)據(jù)批量添加或者更新到數(shù)據(jù)庫中,各種此類功能之間存在大量的重復(fù)代碼。本文使用工廠方法模式對(duì)該問題進(jìn)行了解決,實(shí)現(xiàn)了一個(gè)抽象類。通過本文提供的設(shè)計(jì)方案,在添加新的類似功能的時(shí)候只需要是繼承該抽象類,并實(shí)現(xiàn)具體處理功能即可,有效的減少了重復(fù)代碼。

Excel 批量處理;模式設(shè)計(jì);Web

1 引言

辦公電子化之后,大量的數(shù)據(jù)采用Excel文檔保存,人們習(xí)慣了使用Excel保存并處理數(shù)據(jù)。而互聯(lián)網(wǎng)的普及讓W(xué)eb應(yīng)用流行。Web應(yīng)用與Excel的結(jié)合變得常見,用戶可以把數(shù)據(jù)存儲(chǔ)在Excel文件中,然后把Excel文件上傳,服務(wù)器解析Excel數(shù)據(jù)并進(jìn)行批量處理,從服務(wù)器器獲取的數(shù)據(jù)可以采用Excel的形式返回給用戶。Web應(yīng)用中存在大量的這類操作,但是在服務(wù)器端的處理則上不同的,有的需要把所有數(shù)據(jù)插入到數(shù)據(jù)庫中,有的需要根據(jù)每條數(shù)據(jù)更新數(shù)據(jù)庫中的數(shù)據(jù),而有的則需要進(jìn)行更復(fù)雜的處理,例如有則更新,沒有則添加。多個(gè)功能之間存在大量的重復(fù)代碼。為了解決該問題,本文采用模板方法模式來解決該問題。

2 需求

用戶使用Excel進(jìn)行批量數(shù)據(jù)的維護(hù)通常需要在輸入界面設(shè)置一些Excel的基本信息,這些基本信息包括有效數(shù)據(jù)從哪一行開始,Excel文件包含多少個(gè)有效的Sheet頁,Excel中數(shù)據(jù)的哪些列是有效的,然后選擇Excel文件,最后上傳到服務(wù)器。

服務(wù)器在接收到請(qǐng)求之后的基本處理過程如下:

獲取用戶在客戶端設(shè)置的關(guān)于Excel的基本信息,如果獲取的信息無效,不進(jìn)行處理直接把錯(cuò)誤信息反饋給用戶;

打開服務(wù)器端接收到的文件,如果文件打開出錯(cuò),不進(jìn)行處理直接把錯(cuò)誤信息反饋給用戶;

確定sheet頁,根據(jù)用戶的配置信息分別對(duì)每個(gè)Sheet頁進(jìn)行處理,如果某個(gè)Sheet頁有問題,不進(jìn)行處理直接把錯(cuò)誤信息反饋給用戶;

對(duì)于每個(gè)Sheet頁中的數(shù)據(jù)都要進(jìn)行如下處理:

根據(jù)配置文件中的有效數(shù)據(jù)列從Excel中讀取每一條數(shù)據(jù),對(duì)于每一行數(shù)據(jù)進(jìn)行如下處理:

循環(huán)取出每一行;

編寫SQL語句;

使用獲取的數(shù)據(jù)對(duì)參數(shù)賦值;

執(zhí)行SQL語句;

執(zhí)行過程中,如果有異常,記錄異常信息,在全部數(shù)據(jù)處理完之后把錯(cuò)誤信息反饋給用戶。

所有這樣的功能的處理過程類似,區(qū)別在于設(shè)置的基本信息可能不同,需要進(jìn)行的處理可能不同。

在增加一種新功能動(dòng)的時(shí)候只需要設(shè)置該功能不同于其他功能的地方即可,而不必復(fù)制大量的代碼來修改。

3 模板方法模式介紹

模板方法模式要解決的問題是:很多功能的基本處理過程相同,但是具體的處理子過程不相同,在實(shí)現(xiàn)這些功能的時(shí)候存在大量重復(fù)的代碼。

模板方法模式解決問題的思路是:把基本相同的處理過程使用一個(gè)方法描述,把中間具體的子過程進(jìn)行抽象,定義成抽象方法,這樣在完成具體功能的時(shí)候只需要實(shí)現(xiàn)這些子過程即可。這樣就可以減少重復(fù)的代碼。

模板方法模式的實(shí)現(xiàn):定義一個(gè)抽象類,定義若干抽象方法分別表示處理的子過程,然后再定義一個(gè)模板方法來表示處理過程,在處理過程中分別去調(diào)用表示具體子過程的抽象方法。表示子過程的抽象方法的具體實(shí)現(xiàn)留給子類。

4 設(shè)計(jì)與實(shí)現(xiàn)

根據(jù)我們的需求,模板方法模式用于解決這個(gè)問題非常合適。抽象類的設(shè)計(jì)及實(shí)現(xiàn)如下:

5 測試

以批量添加學(xué)生為例。該類需要繼承抽象父類,并且實(shí)現(xiàn)抽象方法processData。該類AddStudentFromExcel的定義如下:

客戶端程序在使用該功能的時(shí)候先獲取Excel文件,從界面獲取Excel列序號(hào)信息,獲取數(shù)據(jù)的起始行,然后把這些條件作為參數(shù)調(diào)用AddStudentFromExcel的構(gòu)造方法,然后調(diào)用在父類中定義的Process方法即可。

如果要完成其他功能,主要繼承抽象父類,然后實(shí)現(xiàn)processData方法即可。

6 結(jié)論

使用模板方法模式解決Web應(yīng)用中使用Excel上傳數(shù)據(jù)并進(jìn)行批處理的問題非常好,在完成具體功能的時(shí)候,只需要繼承抽象父類,然后實(shí)現(xiàn)對(duì)每條數(shù)據(jù)如何處理的方法processData即可。這樣減少了大量的重復(fù)代碼,從而提高了開發(fā)效率。

[1] 閻宏.Java與模式[M].北京:電子工業(yè)出版社.2002.

[2] 李緒成等.Java Web開發(fā)教程——入門與提高篇(JSP+Servlet)[M].北京:清華大學(xué)出版社.2009.

[3] 李緒成等.Java EE5實(shí)用教程[M].北京:電子工業(yè)出版社.2007.

10.3969/j.issn.1001-8972.2010.09.062

閆海珍(1979年),女,山西原平人,講師,碩士,主要研究方向:數(shù)據(jù)挖掘、智能計(jì)算;李緒成(1977年),男,河南孟津,副教授,碩士,主要研究方向:智能計(jì)算、中間件技術(shù)。

猜你喜歡
批量代碼模板
鋁模板在高層建筑施工中的應(yīng)用
鋁模板在高層建筑施工中的應(yīng)用
批量提交在配置分發(fā)中的應(yīng)用
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
鋁模板在高層建筑施工中的應(yīng)用
城市綜改 可推廣的模板較少
淺議高校網(wǎng)銀批量代發(fā)
汶上县| 平武县| 承德县| 二连浩特市| 平阴县| 云阳县| 盘山县| 麻江县| 长泰县| 错那县| 广元市| 郴州市| 木兰县| 安义县| 林芝县| 温州市| 鲁山县| 泸水县| 湘西| 横峰县| 东方市| 廉江市| 阳信县| 建宁县| 大同县| 西盟| 比如县| 临湘市| 新郑市| 阳高县| 神木县| 武穴市| 西丰县| 清新县| 太保市| 利辛县| 留坝县| 东宁县| 枣庄市| 黄冈市| 阳山县|