康文慧
(安徽工商職業(yè)學(xué)院信息工程學(xué)院,安徽合肥,230001)
關(guān)鍵字:水利普查;J2EE;數(shù)據(jù)庫
隨著計(jì)算機(jī)科學(xué)的不斷發(fā)展和進(jìn)步,人們的生活已經(jīng)離不開互聯(lián)網(wǎng)和計(jì)算機(jī),尤其是水利資源普查信息較多,水利開發(fā)企業(yè)、水利管理機(jī)構(gòu)等信息化發(fā)展過程中,為了適應(yīng)現(xiàn)代高速發(fā)展的水利資源管理需求,提高水利普查綜合資源的信息化水平和自動(dòng)化程度,需要采用現(xiàn)代J2EE技術(shù)、MySQL數(shù)據(jù)庫技術(shù)等開發(fā)完善的水利普查綜合制圖系統(tǒng)。
J2EE開發(fā)平臺(tái)是一套革新的開發(fā)平臺(tái),其中包含了很多組件和框架結(jié)構(gòu),可以根據(jù)系統(tǒng)內(nèi)容選擇性開放,有很好的兼容性,適用于各種需求的系統(tǒng)。因此本文在設(shè)計(jì)水利普查制圖系統(tǒng)時(shí)選用了主流的J2EE框架,其屬于一種分層架構(gòu)框架,各個(gè)層次含有不同的組件?,F(xiàn)今,Sun公司聯(lián)合幾家大公司共同制定并推出了J2EE平臺(tái)技術(shù),通過對當(dāng)前的不同的功能性結(jié)構(gòu)上的分析,體現(xiàn)出當(dāng)前的技術(shù)上的優(yōu)勢性。
Struts作為一種成熟的應(yīng)用架構(gòu)得到了廣泛的應(yīng)用,Struts框架能夠?yàn)橛脩籼峁┎煌愋偷臉永绦颍谶M(jìn)行Web頁面開發(fā)時(shí)此組件能夠發(fā)揮較大的優(yōu)勢,可以高效地完成對各種事件的處理操作。此外Struts體系結(jié)構(gòu)與常用的MVC框架具有一定的相似之處,實(shí)現(xiàn)了系統(tǒng)頁面展示與業(yè)務(wù)邏輯的分離,從而保證開發(fā)人員將更多的精力集中在業(yè)務(wù)邏輯開發(fā)中[1]。
J2EE中的具體實(shí)現(xiàn)依靠于Struts,它延續(xù)著J2EE的優(yōu)點(diǎn),并且可以適應(yīng)改變開發(fā)平臺(tái)的各種特點(diǎn),Struts工作的基本原理,如圖1所示。
圖1 Struts 工作原理
J2EE是一套針對企業(yè)級(jí)分布式應(yīng)用的計(jì)算環(huán)境,專為大型 Web 系統(tǒng)開發(fā)而設(shè)計(jì),是具有可伸縮性、靈活性、易維護(hù)性的,更為開發(fā)系統(tǒng)提供了良好的機(jī)制。對開發(fā)平臺(tái)的熟悉掌握,會(huì)使開發(fā)任務(wù)更高效的完成。
根據(jù)當(dāng)前的技術(shù)趨勢,本項(xiàng)目的軟件開發(fā)體系結(jié)構(gòu)采用符合J2EE規(guī)范的Web計(jì)算模式,遵循J2EE 1.5以上規(guī)范。系統(tǒng)具有良好的跨平臺(tái)特性,能夠運(yùn)行在Windows、Linux等多種系統(tǒng)中,并且對于 MS SQLServer 、Oracle 、 Sybase、MySQL等數(shù)據(jù)庫提供了全面的支持。
Struts是一種成熟的應(yīng)用架構(gòu),其應(yīng)用的可靠性較高、擴(kuò)展性較好,基于此平臺(tái)能夠?qū)崿F(xiàn)功能模塊的組件化封裝,對外提供統(tǒng)一的基于API、webservice的調(diào)用接口。
在設(shè)計(jì)水利普查制圖系統(tǒng)時(shí)需要重點(diǎn)對數(shù)據(jù)庫進(jìn)行設(shè)計(jì),具體劃分為展示層、業(yè)務(wù)邏輯層和數(shù)據(jù)持久層等多個(gè)層次,其中數(shù)據(jù)持久層主要與數(shù)據(jù)庫的操作有關(guān),包括基本的查詢以及刪除等操作,對應(yīng)的操作類有UserDAO、BaseDAO、DraftDAO女等[2]。BaseDAO需要實(shí)現(xiàn)相關(guān)接口的設(shè)計(jì)功能,包括實(shí)體的存儲(chǔ)、更新等操作,另外還能夠展示查詢到的數(shù)據(jù)信息,具體實(shí)現(xiàn)如下所示:
此外還有UserDAO、DraftDAO、DepartmentDAO等多個(gè)類,這些類都是基于BaseDAO實(shí)例化后得到的,能夠完成細(xì)化的功能。
在系統(tǒng)邏輯業(yè)務(wù)層實(shí)現(xiàn)上主要使用了Spring框架與Struts框架,其中具體的業(yè)務(wù)邏輯與Struts框架有關(guān),通過Spring框架能夠提升接口的可靠性[2]。Spring框架其作為一種典型的分層架構(gòu)方式具有較大的優(yōu)勢,其中很多開發(fā)問題提供了良好的解決方案。當(dāng)前在基于Java的應(yīng)用程序開發(fā)中普遍使用了Spring框架。Spring主要有控制反轉(zhuǎn)功能,能夠?qū)2EE開發(fā)中的問題提供解決手段,在這種模式下需要Spring框架來實(shí)現(xiàn)對象的創(chuàng)建與管理等功能,用戶不需要考慮各個(gè)對象之間的關(guān)系。此外Spring框架還對很多基本的數(shù)據(jù)庫操作進(jìn)行了封裝,降低了對數(shù)據(jù)庫操作的復(fù)雜性,改善了系統(tǒng)開發(fā)的效率。
在邏輯業(yè)務(wù)處理層中關(guān)鍵的一個(gè)類是Department類,通過Struts.xml完成攔截配置的過程,例如能夠截獲department_為開頭的邏輯業(yè)務(wù)請求,并且能夠?qū)︻恉epartmentAction進(jìn)行處理,根據(jù) "base-package="cn.news""表示處理的上下文。在找到對應(yīng)的處理類后,能夠發(fā)送有關(guān)的請求,處理完成相關(guān)請求后則將返回的結(jié)果傳輸?shù)教幚眄撁鎯?nèi),從而保證執(zhí)行結(jié)果的準(zhǔn)確性。
數(shù)據(jù)庫表現(xiàn)層主要為用戶呈現(xiàn)可視化的頁面,對于用戶來說,能夠在此頁面中輸入相關(guān)的請求信息,系統(tǒng)處理完成后將處理的結(jié)果再次顯示在頁面中,供用戶查詢。表現(xiàn)層往往含有較多的頁面,各個(gè)頁面通過鏈接的方式跳轉(zhuǎn),頁面主要采用了JSP功能技術(shù)。
數(shù)據(jù)訪問層主要實(shí)現(xiàn)對數(shù)據(jù)庫的訪問,本系統(tǒng)中采用的關(guān)鍵技術(shù)是JavaBean技術(shù),JavaBean 代表由Java語言完成的功能類,具體的特征如下所示:其中含有一個(gè)默認(rèn)的無參構(gòu)造器;能夠?qū)崿F(xiàn)序列化;具有不同類型的可讀寫特性;提供了不同類型的 “getter”與”setter”方法;任意的Java屬性類型都可以對JavaBean的對象屬性進(jìn)行訪問,并利用”getPropertyName”等方法操作對象屬性。JavaBean與微軟中的COM組件具有一定的相似性。利用JavaBean能夠高效地?cái)U(kuò)展Java應(yīng)用的功能,使得程序的功能更加完善。在設(shè)計(jì)數(shù)據(jù)訪問層的過程中需要考慮到較多的影響因素,例如應(yīng)用程序在訪問數(shù)據(jù)庫時(shí),需要保證長期訪問的功能,并且能夠?qū)?yīng)用中的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中,或者是查詢數(shù)據(jù)庫中的數(shù)據(jù),并顯示在應(yīng)用頁面中。在數(shù)據(jù)庫具體操作的過程中主要有數(shù)據(jù)庫的連接、查詢和插入等操作。其中數(shù)據(jù)庫的訪問操作涉及到了數(shù)據(jù)庫訪問模塊等多種類型,相關(guān)的模型統(tǒng)一集成在JavaBean程序集內(nèi),系統(tǒng)可以根據(jù)需求來調(diào)用對應(yīng)的模塊。本文在設(shè)計(jì)水利普查綜合制圖系統(tǒng)時(shí)重點(diǎn)對數(shù)據(jù)庫訪問進(jìn)行了設(shè)計(jì),通過特定的數(shù)據(jù)庫訪問接口來對用戶訪問層進(jìn)行訪問。用戶在應(yīng)用過程中只需要知曉接口的具體聲明即可調(diào)用,而無須了解接口的具體實(shí)現(xiàn)。其中接口的具體說明如下:public interface IWaterIMA{};在這個(gè)接口中含有不同的功能函數(shù),對應(yīng)著不同的功能,主要包括插入模塊 bool AddWaterIMA 、更新模塊 bool UpdateWaterIMA 、查詢模塊 SqlDataReader GetAllWaterIMAInfo ()、刪除模塊bool DeleteWaterIMA。采用這種方式能夠完成對數(shù)據(jù)庫的添加、修改、查詢以及刪除等操作,滿足了數(shù)據(jù)庫的操作要求。
用戶通過數(shù)據(jù)訪問層即可實(shí)現(xiàn)對數(shù)據(jù)庫的操作,在本系統(tǒng)設(shè)計(jì)過程中采用了面向?qū)ο蟮脑O(shè)計(jì)理念,將數(shù)據(jù)庫操作方法統(tǒng)一采用JavaBean技術(shù)進(jìn)行封裝處理,在設(shè)計(jì)過程中涉及到了應(yīng)用程序?qū)?shù)據(jù)庫的訪問,需要保證長期訪問的功能,并且能夠?qū)?yīng)用中的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中,或者是查詢數(shù)據(jù)庫中的數(shù)據(jù),然后將數(shù)據(jù)顯示在應(yīng)用頁面中。在數(shù)據(jù)庫具體操作的過程中主要有數(shù)據(jù)庫的連接、查詢和插入等操作。因此在設(shè)計(jì)中將系統(tǒng)訪問過程設(shè)計(jì)在數(shù)據(jù)接口設(shè)計(jì)層,并結(jié)合JavaBean技術(shù)完成反射操作,由此能夠獲取到數(shù)據(jù)庫操作的信息,并完成對應(yīng)的功能。
專題制圖包含制圖預(yù)覽、一鍵式出圖等功能,可以根據(jù)不同用戶的需求,完成專題制圖功能,并且可以出圖使用,如圖2所示。
圖2 專題制圖出圖運(yùn)行界面
項(xiàng)目系統(tǒng)提供專題制圖預(yù)覽功能,可以根據(jù)不同需求,完成卡片式預(yù)覽及其他多種預(yù)覽方式,如圖3所示。
圖3 卡片方式預(yù)覽運(yùn)行截圖
本文作者的創(chuàng)新點(diǎn):利用J2ee技術(shù)實(shí)現(xiàn)了水利普查綜合制圖系統(tǒng),該系統(tǒng)以網(wǎng)絡(luò)技術(shù)等為基礎(chǔ),有效的為水利資源信息提供圖文并茂的信息資源,提高水利資源業(yè)務(wù)工作效率。