郝麗萍
(河北省張家口市地方病防治所 075000)
地方病防治統(tǒng)計(jì)年報(bào)是反映本地區(qū)年度地方病流行的一項(xiàng)最基本的信息,是評(píng)價(jià)防治措施執(zhí)行情況和防治效果的重要數(shù)據(jù)資料。加強(qiáng)與完善地方病防治統(tǒng)計(jì)年報(bào)工作,是做好地方病防治最基礎(chǔ)的一項(xiàng)。為切實(shí)做好地方病防治統(tǒng)計(jì)年報(bào)工作,使年報(bào)信息能夠準(zhǔn)確地反映本地區(qū)地方病防治現(xiàn)狀和存在的問(wèn)題,為各級(jí)政府制定和調(diào)整地方病防治策略提供科學(xué)依據(jù),開(kāi)發(fā)一個(gè)符合我市地方病防治統(tǒng)計(jì)年報(bào)系統(tǒng)就顯得十分必要。
本文所介紹的地方病防治統(tǒng)計(jì)年報(bào)系統(tǒng)采用目前最流行的SSH2組合框架。SSH2框架簡(jiǎn)化了經(jīng)典的Java EE 應(yīng)用的難度,在保留經(jīng)典Java EE 應(yīng)用架構(gòu)、高度可擴(kuò)展性、高度可維護(hù)性的基礎(chǔ)上,降低了Java EE 應(yīng)用的開(kāi)發(fā)、部署成本,具備了快速、高效、易于使用的特點(diǎn)。
本系統(tǒng)采用開(kāi)源的Java 框架Struts2、Spring3.0 和Hibernate3.3( SSH2)來(lái)設(shè)計(jì)。SSH2框架是典型的J2EE三層結(jié)構(gòu),分為表現(xiàn)層、中間層(業(yè)務(wù)邏輯層)和數(shù)據(jù)持久層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪(fǎng)問(wèn)及合法性校驗(yàn)等工作放在中間層處理??蛻?hù)端不直接與數(shù)據(jù)庫(kù)交互,而是通過(guò)組件與中間層建立連接,再由中間層與數(shù)據(jù)庫(kù)交互。
Struts2 是在Struts1 和WebWork 的技術(shù)基礎(chǔ)上進(jìn)行了合并的全新的Struts 2 框架,是以WebWork為核心,采用攔截器的機(jī)制來(lái)處理用戶(hù)的請(qǐng)求,這樣的設(shè)計(jì)也使得業(yè)務(wù)邏輯控制器能夠與Servlet API 完全脫離開(kāi)。其優(yōu)點(diǎn)如下:(1)實(shí)現(xiàn)了MVC模式,層次結(jié)構(gòu)清,使程序員只需關(guān)注業(yè)務(wù)邏輯的實(shí)現(xiàn);(2)豐富的標(biāo)簽庫(kù),大大提高了開(kāi)發(fā)的效率;(3) Struts2提供豐富的攔截器實(shí)現(xiàn);(4)通過(guò)配置文件,就可以掌握整個(gè)系統(tǒng)各個(gè)部分之間的關(guān)系;(5) 異常處理機(jī)制,只需在配置文件中配置異常的映射,即可對(duì)異常做相應(yīng)的處理。
Spring框架提供了一種能夠完全獨(dú)立于各種應(yīng)用服務(wù)器并可與現(xiàn)有框架無(wú)縫整合的解決方案。其優(yōu)點(diǎn)如下:(1)無(wú)入侵性(在業(yè)務(wù)邏輯代碼中感覺(jué)不到Spring框架的存在);(2) 各個(gè)組件之間的耦合極為松散;(3)無(wú)需程序員自己實(shí)現(xiàn)singleton模式;(4)通過(guò)AOP,可以實(shí)現(xiàn)事務(wù)管理和日志管理;(5)整合其他的框架,如:struts2框架和hibernate框架。
Hibernate是一個(gè)優(yōu)秀的Java EE 平臺(tái)下的“對(duì)象-關(guān)系”映射的開(kāi)源工具。其優(yōu)點(diǎn)如下:(1)對(duì)象/關(guān)系數(shù)據(jù)庫(kù)映射(ORM),使用時(shí)只需操縱對(duì)象,使開(kāi)發(fā)更加面向?qū)ο蠡?;?) 無(wú)入侵性;(3)簡(jiǎn)潔的HQL語(yǔ)句,減少了JDBC與SQL操作數(shù)據(jù)庫(kù)的代碼量;(4)移植性好。
根據(jù)地方病防治統(tǒng)計(jì)年報(bào)工作的實(shí)際需求,本系統(tǒng)主要模塊包括用戶(hù)管理、病種種類(lèi)管理、病區(qū)信息管理、病種年報(bào)表填報(bào)、病種年報(bào)表維護(hù)、病種年報(bào)表生成和病種年報(bào)數(shù)據(jù)分析七大模塊。
本系統(tǒng)三層架構(gòu)的模式分為表示層、中間層(業(yè)務(wù)邏輯層)和數(shù)據(jù)持久化層,利用Struts2實(shí)現(xiàn)Web表示層,Hibernate實(shí)現(xiàn)數(shù)據(jù)訪(fǎng)問(wèn)和持久化層,Spring實(shí)現(xiàn)業(yè)務(wù)邏輯層和整合工作,系統(tǒng)開(kāi)發(fā)環(huán)境:JDK 1.5,Eclipse+Myeclipse;開(kāi)發(fā)語(yǔ)言采用JAVA;頁(yè)面開(kāi)發(fā)采用JSP技術(shù);服務(wù)器:weblogic9.0 ;數(shù)據(jù)庫(kù)MySQL5.0。在設(shè)計(jì)模式中,分層是一個(gè)非常重要的功能,其總體結(jié)構(gòu)如下圖所示。
Web表示層就是 MVC模式里面的“C”(controller),負(fù)責(zé)控制業(yè)務(wù)邏輯層與表現(xiàn)層的交互,調(diào)用業(yè)務(wù)邏輯層,并將業(yè)務(wù)數(shù)據(jù)返回給表現(xiàn)層作組織表現(xiàn),現(xiàn)截取一段用戶(hù)管理的Action代碼,來(lái)展示Struts2的控制器組件的實(shí)現(xiàn)。代碼清單如下所示:
業(yè)務(wù)邏輯層處于數(shù)據(jù)持久層與表示層中間,起到了數(shù)據(jù)交換中承上啟下的作用。它以DAO層為基礎(chǔ),通過(guò)對(duì)DAO組件的正面模式包裝,完成系統(tǒng)所要求的業(yè)務(wù)邏輯。同時(shí)還扮演了兩個(gè)不同的角色:對(duì)于數(shù)據(jù)持久層而言,它是調(diào)用者;對(duì)于表示層而言,它卻是被調(diào)用者?,F(xiàn)可以創(chuàng)建一個(gè)基本事務(wù)管理bean,然后通過(guò)各個(gè)管理類(lèi)bean對(duì)該bean進(jìn)行繼承的方式來(lái)簡(jiǎn)化配置,實(shí)現(xiàn)復(fù)用。以用戶(hù)管理的日志配置為例代碼如下:
持久層用來(lái)負(fù)責(zé)存儲(chǔ)從應(yīng)用到數(shù)據(jù)庫(kù)的數(shù)據(jù),該層封裝了數(shù)據(jù)的增、刪、查、改的操作。 Hibernate框架通過(guò)實(shí)體關(guān)系映射工具將關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)映射成對(duì)象,很方便地實(shí)現(xiàn)以面向?qū)ο蠓绞讲僮鲾?shù)據(jù)庫(kù)。持久層的對(duì)象與數(shù)據(jù)庫(kù)的操作是通過(guò)DAO(Date Access Obiect/數(shù)據(jù)訪(fǎng)問(wèn)對(duì)象)模式來(lái)實(shí)現(xiàn)的,即每個(gè)持久層對(duì)象都有自己的DAO。以用戶(hù)管理為例說(shuō)明Hibernate的實(shí)現(xiàn)過(guò)程,代碼片段如下所示:
地方病防治統(tǒng)計(jì)年報(bào)系統(tǒng)采用了當(dāng)今最為流行的Web系統(tǒng)開(kāi)發(fā)框架SSH2。在SSH2框架中利用Struts2實(shí)現(xiàn)Web表示層,Hibernate實(shí)現(xiàn)數(shù)據(jù)訪(fǎng)問(wèn)和持久化層,Spring實(shí)現(xiàn)業(yè)務(wù)邏輯層和整合工作,實(shí)踐證明該系統(tǒng)具有很好的開(kāi)放性、實(shí)用性、安全性、可擴(kuò)展性和可維護(hù)性。
[1]盧凱霞,Struts+Spring+Hibernate在OA系統(tǒng)開(kāi)發(fā)中的應(yīng)用,信息技術(shù),2011。
[2]張燁,基于Struts+Spring+Hibernate的高校學(xué)生管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),電子設(shè)計(jì)工程,2011。
[3]楊旭士,基于Struts2.0技術(shù)的軟考教務(wù)系統(tǒng)設(shè)計(jì)與研究,計(jì)算機(jī)與現(xiàn)代化,2010。
[4]劉斌,大型門(mén)戶(hù)網(wǎng)站是這樣煉成的,Java開(kāi)發(fā)專(zhuān)家,電子工業(yè)出版社,2010。
[5]李剛,輕量級(jí)Java EE企業(yè)應(yīng)用實(shí)戰(zhàn)(第3版):Struts2 +Spring3 + Hibernate整合開(kāi)發(fā),電子工業(yè)出版社,2012。
[6]劉中兵,開(kāi)發(fā)者突擊:Java Web主流框架整合開(kāi)發(fā)(J2EE+ Struts + Spring + Hibernate)(第 2 版),電子工業(yè)出版社,2011。
[7]計(jì)文柯,Spring技術(shù)內(nèi)幕:深入解析Spring架構(gòu)與設(shè)計(jì)原理(第2版),機(jī)械工業(yè)出版社,2012。
[8]陸舟,Struts2技術(shù)內(nèi)幕:深入解析Struts框架設(shè)計(jì)與實(shí)現(xiàn)原理,機(jī)械工業(yè)出版社,2012。
[9]王建國(guó),Struts + Spring + Hibernate框架及應(yīng)用開(kāi)發(fā),清華大學(xué)出版社,2011。