摘要:本文闡述了人力資源管理系統的重要性,詳細介紹了在人力資源管理系統開發中數據抽取模塊的實現。
關鍵詞:MVC;模板;存儲過程
中圖分類號:TP315文獻標識碼:A文章編號:1009-3044(2008)05-10ppp-0c
1 引言
隨著全球對知識和人才的重視,企業對人力資源管理重要性的認識逐漸深化。人力資源管理系統幫助企業提高人力資源管理工作的效率,并提供人力資源的決策分析。數據抽取模塊實現了從人力資源管理系統的大量數據中及時有效地抽取出各部門所需要的數據。
2 系統簡介
人力資源管理系統是基于MVC設計模式與J2EE架構的Web應用系統,采用了Struts與Expresso框架技術。系統分為表現層和業務層兩部分,表現層主要是顯示系統展現和返回給客戶端信息以及執行客戶端頁面的跳轉,包括Jsp頁面和Action類,主要應用Struts框架中的V(View)和C(Controller)來實現。業務層主要實現系統的業務邏輯M(Model),包括Service接口和實現類、BO對象、VO對象。
3 數據抽取模塊表現層的開發
3.1 JSP頁面的建立
系統中的View部分主要是JSP頁面,和自定義標簽構成了表現層的表現邏輯。在頁面開頭部分使用struts的標簽(tag),使頁面簡化。此外還使用了系統中自定義的標簽,使用標記表示引入系統的樣式表文件style.css,表示引入script腳本文件;
頁面顯示的指標列表中logic:iterate是Struts-logic標簽庫的標簽,將業務層中的數據展現給客戶端,即indexForm屬性對應的FormBean中的內容,type表示的是FormBean中的內容,該頁面中業務層返回的數據是指標集的值對象IndexVO,bean:write是Struts-bean標簽庫中的標簽,表示把IndexVO中對應的屬性顯示到JSP頁面中,JSP頁面searchIndex.jsp實現把業務層中獲取的數據展現給客戶端。
3.2 控制器(Controller)的實現
ActionServlet和ActionMapping類構成了Struts的控制器部分,其中Servlet類型的ActionServlet用來接受客戶端的請求,并選擇執行相應的業務邏輯,然后把響應結果返回到客戶端。ActionServlet 包括一組基于配置的ActionMapping 對象,ActionMapping 對象通過配置文件為請求提供實現該請求業務邏輯的ActionClass之間的映射關系。
3.3 Action的實現
主要由IndexManageForm和IndexManageAction實現,前者主要用于封裝由客戶端發送的請求和保存在業務邏輯處理過程中產生的業務數據。后者則是用來處理用戶的請求,為表現層與業務層提供了一個橋梁,根據具體的操作訪問相關的業務服務,并且根據業務服務的處理結果,返回相應的下一步處理。在設計中采用了Business Delegate的設計模式,將真正的業務處理交給IndexManageService來實現。
4 業務層的開發
業務層部分是對數據抽取模塊中業務邏輯處理的實現,利用了Expresso中的DBObject構成數據訪問對象及業務對象。業務服務及業務對象實現了Application Service設計模式,構成了系統中的業務層,通過Application Service向客戶端提供統一的Service接口,封裝了業務對象及數據訪問對象的細節,從而使客戶端透明的訪問業務服務。
4.1 DBObject的定義
指標集管理的數據訪問對象與業務對象合并成了一個對象,它們的基類BaseBusinessObject繼承于expresso中的SecuredDBObject,主要提供了數據的添加、修改、刪除及查詢等基本操作。DBObject通過數據庫連接來與數據庫進行交互,提供了一個將數據訪問對象與關系數據庫中的表進行映射的一種機制,主要負責將業務數據進行持久化,同時它也包含一些業務邏輯。
4.2 MultiDBObject的定義
需要對多個數據庫表之間進行連接查詢時就需要MultiDBObject。對指標定義表和指標SQL定義表連接查詢首先通過addDBObject()方法將需要連接的對象添加到MultiDBObject上,然后設置它們之間的連接關系,再執行查詢方法。
5 系統中對實現數據抽取存儲過程的加載
在系統中調用數據抽取模塊的存儲過程是使用CallableStatement 類來實現的,它實際上是PreparedStatement 的一個子類。傳給prepareCall方法的參數是存儲過程調用中的書寫規范,指定存儲過程的名稱,?代表了需要指定的參數。存儲過程帶有的輸入參數,通過setXXX()方法來設定輸入參數的值;存儲的返回參數,通過registerOutParameter()方法來注冊輸出參數。
6 數據模板文件上傳的實現
Struts是由ActionServlet、Action、FormBean、ActionMapping、ActionForward、ActionError和Struts標記庫等基本組件組成的,借助于這些組件實現文件上傳。具體步驟:(1)在視圖中加入文件控件,form表單中加入屬性enctype= 'multipart/form-data'?(2)在配置文件struts-config.xml中,將UploadForm實例化,從ActionMapping類中得到UploadAction實例,path為UploadAction 類的相對路徑,type為連接到本映射的UploadAction類的全稱,scope為UploadForm的作用域。(3)建立一個UploadForm.java類用來保存請求的參數,其中該文件中的變量名稱與HTTP請求參數中的名稱一致,使用get和set方法得到上傳文件的參數,導入用于獲得視圖中要上傳文件的類。(4)建立一個UploadAction.java類用來處理要上傳的文件。從UploadForm中接收上傳參數,處理相關的合法性操作。(5) 將文件上傳到服務器。
7 數據寫入Excel模板的實現
在系統的實施項目中,將抽取的數據以Excel表的方式輸出,把抽取的數據寫入Excel模板是利用POI項目的HSSF對象實現的。xls文件從大到小包括了HSSFWorkbook HSSFSheet,HSSFRow HSSFCell,可在cell中設置各種類型的值。POI為利用純java操作ole2對象提供了可能,而且克服了ole對象調用的缺陷,提供了服務器端的Excel解決方案。
參考文獻:
[1]許南山,高峰.基于J2EE架構的企業再現交易系統設計與實現[J].計算機工程與設計,2004,25(1).
[2]何成萬,余秋惠.MVC 模型2 及軟件框架Struts 的研究[J].計算機工程,2002,28(6):274-275.
[3]孫衛琴.基于MVC的Java Web 設計與開發[M].北京:電子工業出版社,2004:236-242.
收稿日期:2007-12-20
作者簡介:李華(1974-),女,遼寧東港人,碩士,主要從事計算機教學與研究。