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

?

基于J2EE架構(gòu)的經(jīng)濟(jì)普查系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2013-02-20 05:37張麗虹
計(jì)算機(jī)時(shí)代 2013年2期

張麗虹

摘 要: 設(shè)計(jì)并實(shí)現(xiàn)了基于J2EE架構(gòu)的經(jīng)濟(jì)普查系統(tǒng)。利用J2EE多層結(jié)構(gòu)模型的優(yōu)點(diǎn),將系統(tǒng)分為表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)支持層等層次,介紹了各層次的設(shè)計(jì),提出了經(jīng)濟(jì)普查系統(tǒng)中基于J2EE和MVC模式的解決方案;從設(shè)計(jì)者的角度,詳細(xì)闡述了整個(gè)系統(tǒng)的架構(gòu)與實(shí)現(xiàn)。建立了一套經(jīng)濟(jì)普查管理軟件,對(duì)經(jīng)濟(jì)普查數(shù)據(jù)實(shí)行集中管理、實(shí)時(shí)處理。

關(guān)鍵詞: 經(jīng)濟(jì)普查系統(tǒng); J2EE; MVC; 多層結(jié)構(gòu)模型

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2013)02-28-04

Design and implementation of economic census system based on J2EE

Zhang Lihong

(Zhejiang Changzheng Professional & Technical College, Department of computing and information technology, Hangzhou, Zhejiang 310023, China)

Abstract: An economic census system based on J2EE is designed and realized. The system is divided into presentation layer, logic layer and data layer through J2EE multi-layer structure model. The design ideas of levels are described. The solution based on J2EE and MVC is proposed. The architecture and realization of the overall system are described from the designer's point of view. Furthermore, a set of economic census management software is designed, which has a centralized management and real-time processing for the economic census data.

Key words: economic census system; J2EE; MVC(Model-View-Controller); multi-layer structure model

0 引言

為了全面掌握國(guó)民經(jīng)濟(jì)的發(fā)展規(guī)模、結(jié)構(gòu)和效益等情況,我國(guó)于2008年進(jìn)行了第二次全國(guó)經(jīng)濟(jì)普查。這次普查的標(biāo)準(zhǔn)時(shí)間點(diǎn)為2008年12月31日,時(shí)期資料為2008年度[1]。普查對(duì)象是在我國(guó)境內(nèi)從事第二產(chǎn)業(yè)、第三產(chǎn)業(yè)的全部法人單位、產(chǎn)業(yè)活動(dòng)單位和個(gè)體經(jīng)營(yíng)戶,普查內(nèi)容主要包括單位基本屬性、就業(yè)人員、財(cái)務(wù)狀況、生產(chǎn)經(jīng)營(yíng)情況、生產(chǎn)能力、原材料和能源消耗、科技活動(dòng)情況等[2]。

1 經(jīng)濟(jì)普查系統(tǒng)中技術(shù)應(yīng)用現(xiàn)狀

目前,在經(jīng)濟(jì)普查系統(tǒng)中應(yīng)用的是具有一定競(jìng)爭(zhēng)力的分布式組件技術(shù),主要包括.NET,CORBA,J2EE三大主流的組件模型[3]。

J2EE(Java 2 Platform Enterprise Edition)是美國(guó)Sun公司推出的一個(gè)適用于企業(yè)級(jí)計(jì)算的支持多層、分布式應(yīng)用的全新概念的Java平臺(tái),它為搭建具有可伸縮性、靈活性、易維護(hù)性的企業(yè)信息系統(tǒng)提供了良好的機(jī)制[4]。

近年來,隨著Java技術(shù)的逐漸成熟與完善,J2EE平臺(tái)得到了長(zhǎng)足的發(fā)展;而面向?qū)ο蟮腗VC設(shè)計(jì)模式與J2EE多層體系結(jié)構(gòu)結(jié)合起來,形成了一種快速高效的開發(fā)模式。其中,開源的Struts框架正是對(duì)MVC設(shè)計(jì)模式的實(shí)現(xiàn),它提供了國(guó)際化和靈活性等許多特性,而且它選擇基于對(duì)象關(guān)系映射技術(shù)的Hibernate作為持久層的解決方案是比較合適的。

Struts是一個(gè)Web框架,它是Apache 基金會(huì)Jakarta 項(xiàng)目組的一個(gè)Open Source項(xiàng)目,主要采用MVC模式,能夠很好地幫助Java開發(fā)者利用J2EE開發(fā)Web應(yīng)用[5]。和其他的Java架構(gòu)一樣,Struts 也是面向?qū)ο笤O(shè)計(jì),其體系結(jié)構(gòu)包括模型(Model),視圖(View)和控制器(Controller)三部分。

Hibernate是Java應(yīng)用和關(guān)系數(shù)據(jù)庫之間的橋梁,負(fù)責(zé)Java對(duì)象和關(guān)系數(shù)據(jù)之間的映射[6]。它是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,內(nèi)部封裝了JDBC訪問數(shù)據(jù)庫的操作,向上層應(yīng)用提供了面向?qū)ο蟮臄?shù)據(jù)庫訪問API。Hibernate 在Java程序與數(shù)據(jù)庫之間進(jìn)行的轉(zhuǎn)換,就是將Java中的對(duì)象與對(duì)象的關(guān)系,對(duì)應(yīng)到關(guān)系型數(shù)據(jù)庫中的表與表之間的關(guān)系,Hibernate提供了這個(gè)過程中自動(dòng)化對(duì)應(yīng)轉(zhuǎn)換的方案,同樣也提供關(guān)系型數(shù)據(jù)庫中表與表之間的關(guān)系,對(duì)應(yīng)到Java程序中對(duì)象與對(duì)象的關(guān)系。

2 系統(tǒng)功能分析與總體架構(gòu)

經(jīng)濟(jì)普查是關(guān)系國(guó)計(jì)民生的大事,對(duì)國(guó)民經(jīng)濟(jì)的發(fā)展起著重大作用。而經(jīng)濟(jì)普查系統(tǒng)是數(shù)據(jù)采集、處理與發(fā)布的基礎(chǔ),本章介紹了經(jīng)濟(jì)普查系統(tǒng)建設(shè)的意義、系統(tǒng)實(shí)現(xiàn)的主要功能與總體架構(gòu)。

2.1 需求陳述

經(jīng)濟(jì)普查系統(tǒng)是一套基于J2EE技術(shù),并以規(guī)范的統(tǒng)計(jì)分類和統(tǒng)計(jì)方法為基礎(chǔ)建立起來的普查系統(tǒng)。該系統(tǒng)應(yīng)具有強(qiáng)大的在線實(shí)時(shí)數(shù)據(jù)處理能力,能為加強(qiáng)和改善政府宏觀管理,調(diào)整經(jīng)濟(jì)結(jié)構(gòu),編制預(yù)算,規(guī)范稅源和規(guī)劃產(chǎn)業(yè)層次結(jié)構(gòu)提供重要依據(jù),是構(gòu)架國(guó)家宏觀數(shù)據(jù)庫,電子政務(wù)和實(shí)現(xiàn)國(guó)家行政管理現(xiàn)代化的重要基礎(chǔ)。

在系統(tǒng)的開發(fā)過程中,要充分考慮系統(tǒng)的可用性、可維護(hù)性、可擴(kuò)展性、安全性等,使用戶操作盡量簡(jiǎn)單明了。

⑴ 要保證系統(tǒng)的響應(yīng)時(shí)間在普通用戶可接受的范圍內(nèi)。

⑵ 建立完整的元數(shù)據(jù)庫管理系統(tǒng),把統(tǒng)計(jì)涉及到的各類指標(biāo)納入管理范疇,做到統(tǒng)一管理、統(tǒng)一維護(hù)。系統(tǒng)在開發(fā)過程中要充分考慮統(tǒng)計(jì)應(yīng)用不確定性的實(shí)際情況,在統(tǒng)計(jì)指標(biāo)維護(hù)、系統(tǒng)功能擴(kuò)展等方面能適應(yīng)統(tǒng)計(jì)信息和應(yīng)用領(lǐng)域的變化。

⑶ 基本單位信息有部分涉密和敏感信息,在應(yīng)用系統(tǒng)設(shè)計(jì)中必須包含安全部分的設(shè)計(jì),并加以實(shí)現(xiàn)。安全設(shè)計(jì)和實(shí)現(xiàn)應(yīng)該在應(yīng)用程序每一個(gè)層次上加以體現(xiàn),從而形成層次性深度防御。應(yīng)用程序訪問和數(shù)據(jù)分離,必須以非數(shù)據(jù)擁有者的身份訪問數(shù)據(jù)。應(yīng)用系統(tǒng)應(yīng)該包含一個(gè)多元的身份信息。

⑷ 用戶界面設(shè)計(jì)要求簡(jiǎn)單明了,便于操作,應(yīng)主要遵循:界面直觀、對(duì)用戶透明的原則。

2.2 系統(tǒng)功能

根據(jù)普查的功能要求,可以把系統(tǒng)功能劃分為八項(xiàng),即制度管理,調(diào)查對(duì)象管理,審核管理,數(shù)據(jù)匯總管理,數(shù)據(jù)查詢管理,元數(shù)據(jù)管理,系統(tǒng)管理和輔助功能。

2.2.1 制度管理

制度管理為專業(yè)用戶提供了制度布置和接收的功能。該子系統(tǒng)包括制度導(dǎo)入,制度導(dǎo)出,報(bào)表發(fā)布管理。

2.2.2 調(diào)查對(duì)象管理

經(jīng)濟(jì)普查的對(duì)象是在中華人民共和國(guó)境內(nèi)從事第二產(chǎn)業(yè)、第三產(chǎn)業(yè)活動(dòng)的全部法人單位、產(chǎn)業(yè)活動(dòng)單位和個(gè)體經(jīng)營(yíng)戶[7],普查對(duì)象應(yīng)當(dāng)如實(shí)填寫經(jīng)濟(jì)普查數(shù)據(jù)。調(diào)查對(duì)象管理是指對(duì)被調(diào)查對(duì)象的管理,包括單位名錄管理,外網(wǎng)用戶管理。

2.2.3 審核管理

審核管理包括法人產(chǎn)業(yè)差錯(cuò)清單、清理數(shù)據(jù)、審核結(jié)果分析、審核條件查看、數(shù)據(jù)成批審核。

2.2.4 數(shù)據(jù)匯總管理

數(shù)據(jù)匯總基于匯總關(guān)系,將基層數(shù)據(jù)加總得到匯總數(shù)據(jù),匯總關(guān)系是根據(jù)統(tǒng)計(jì)分組的設(shè)定來表達(dá)的。在數(shù)據(jù)匯總中,匯總表選擇供用戶來選擇需要執(zhí)行匯總的綜合表。

2.2.5 數(shù)據(jù)查詢管理

對(duì)于基層數(shù)據(jù),可以按報(bào)表進(jìn)行單指標(biāo)或多指標(biāo)組合查詢,查詢結(jié)果可以導(dǎo)出文件。對(duì)于綜合數(shù)據(jù),可以按表查詢,查詢結(jié)果可以導(dǎo)出excel文件。進(jìn)度查詢用于查看系統(tǒng)的執(zhí)行進(jìn)度情況。業(yè)務(wù)日志查詢用于查看,導(dǎo)出,刪除系統(tǒng)日志。

2.2.6 元數(shù)據(jù)管理

基于元數(shù)據(jù)標(biāo)準(zhǔn)的數(shù)據(jù)管理,為同級(jí)用戶之間進(jìn)行數(shù)據(jù)合并和上下級(jí)之間進(jìn)行數(shù)據(jù)上報(bào)、接收提供一致性的交互界面和后臺(tái)支持。主要包括數(shù)據(jù)導(dǎo)入與數(shù)據(jù)導(dǎo)出。其中數(shù)據(jù)導(dǎo)入包括導(dǎo)入本級(jí)數(shù)據(jù)、導(dǎo)入上報(bào)數(shù)據(jù)、導(dǎo)入清查數(shù)據(jù)。數(shù)據(jù)導(dǎo)出包括導(dǎo)出本級(jí)數(shù)據(jù)、導(dǎo)出上報(bào)數(shù)據(jù)。

2.2.7 系統(tǒng)管理

系統(tǒng)管理包括對(duì)國(guó)家統(tǒng)計(jì)局的所有組織進(jìn)行創(chuàng)建、修改、啟用、停用等操作;機(jī)構(gòu)用戶管理指的是對(duì)統(tǒng)計(jì)局專業(yè)用戶進(jìn)行管理。

2.3 數(shù)據(jù)庫設(shè)計(jì)

數(shù)據(jù)庫設(shè)計(jì)有兩個(gè)最重要的目標(biāo),即滿足應(yīng)用功能需求和良好的數(shù)據(jù)庫性能。所謂滿足應(yīng)用功能需求,主要是指用戶當(dāng)前與可預(yù)知的將來應(yīng)用所需要的數(shù)據(jù)及其聯(lián)系應(yīng)全部準(zhǔn)確地存在于數(shù)據(jù)庫之中,從而滿足用戶應(yīng)用中所需要的數(shù)據(jù)及其聯(lián)系應(yīng)全部準(zhǔn)確地存于數(shù)據(jù)庫中,從而滿足用戶應(yīng)用中所需要的對(duì)數(shù)據(jù)進(jìn)行的存、取、刪、改等操作。所謂良好的數(shù)據(jù)庫性能,主要是指對(duì)數(shù)據(jù)的高效率存取和空間的節(jié)省,并具有良好的數(shù)據(jù)共享性、完整性、一致性及安全保密性。

2.3.1 概念設(shè)計(jì)

概念設(shè)計(jì)是系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵,它通過對(duì)用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS且反映組織信息需求的概念模型。本系統(tǒng)數(shù)據(jù)庫以實(shí)體聯(lián)系法(Entity-Relationship Approach)來建立數(shù)據(jù)庫的概念模型,按照系統(tǒng)數(shù)據(jù)流圖的分析結(jié)果,下面以調(diào)查對(duì)象管理中的單位名錄管理模塊為例構(gòu)造出它們的E-R圖。根據(jù)需求和功能分解分析得到初步的用戶數(shù)據(jù),如圖1所示,用E-R圖表示新增調(diào)查對(duì)象信息的需求(圖1中只畫出了主要屬性)。

[地區(qū)] [部門] [角色] [注冊(cè)

類型] [用戶][調(diào)查

對(duì)象][增加] [行業(yè)

代碼] [單位

代碼] [單位

名稱] [主營(yíng)

業(yè)務(wù)] [上級(jí)] [操作

時(shí)間]

圖1 用戶修改企業(yè)信息的實(shí)體聯(lián)系模型

2.3.2 邏輯設(shè)計(jì)

邏輯設(shè)計(jì)就是把概念結(jié)構(gòu)轉(zhuǎn)換成所選擇的DBMS支持的數(shù)據(jù)模型,并對(duì)其進(jìn)行優(yōu)化,也就是將概念結(jié)構(gòu)設(shè)計(jì)得到的E-R圖,轉(zhuǎn)換生成等價(jià)的數(shù)據(jù)庫關(guān)系模式,并對(duì)轉(zhuǎn)換后的模型進(jìn)行定義描述。而在用戶看來,一個(gè)關(guān)系模型的邏輯結(jié)構(gòu)是一張二維表,由行和列組成。

在建立數(shù)據(jù)庫的關(guān)系模式時(shí),需要遵循一定的原則。一方面,要求每個(gè)關(guān)系都應(yīng)滿足一定的規(guī)范,只有這樣才能使關(guān)系模式設(shè)計(jì)合理、冗余最小、操作高效。本系統(tǒng)數(shù)據(jù)庫的設(shè)計(jì)要求是:滿足第三范式(3NF);滿足數(shù)據(jù)的一致性、完整性、安全性等原則。

2.3.3 物理設(shè)計(jì)

數(shù)據(jù)庫最終是要存儲(chǔ)在物理設(shè)備上的。為一個(gè)給定的邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu)與存取方法)的過程,就是數(shù)據(jù)庫的物理設(shè)計(jì)。物理結(jié)構(gòu)依賴于給定的DBMS和硬件系統(tǒng),因此,設(shè)計(jì)人員必須充分了解所用DBMS的內(nèi)部特征,特別是存儲(chǔ)結(jié)構(gòu)和存取方法;充分了解應(yīng)用環(huán)境,特別是應(yīng)用的處理頻率和響應(yīng)時(shí)間要求;以及充分了解外存設(shè)備的特性。

數(shù)據(jù)庫的物理設(shè)計(jì)通常分為以下兩步。

⑴ 確定數(shù)據(jù)庫的物理結(jié)構(gòu)

確定數(shù)據(jù)庫存儲(chǔ)結(jié)構(gòu)時(shí)要綜合考慮存取時(shí)間、存儲(chǔ)空間利用率和維護(hù)代價(jià)三方面的因素。這三個(gè)方面常常是相互矛盾的,例如消除一切冗余數(shù)據(jù)雖然能夠節(jié)約存儲(chǔ)空間,但往往會(huì)導(dǎo)致檢索代價(jià)的增加,因此必須進(jìn)行權(quán)衡,選擇一個(gè)折中方案。

⑵ 對(duì)物理結(jié)構(gòu)進(jìn)行評(píng)價(jià),評(píng)價(jià)的重點(diǎn)是時(shí)間和空間效率

評(píng)價(jià)物理數(shù)據(jù)庫的方法完全依賴于所選用的DBMS,主要是從定量估算各種方案的存儲(chǔ)空間、存取時(shí)間和維護(hù)代價(jià)入手,對(duì)估算結(jié)果進(jìn)行權(quán)衡、比較,選擇出一個(gè)較優(yōu)的合理的物理結(jié)構(gòu)。如果該結(jié)構(gòu)不符合用戶需求,則需要修改設(shè)計(jì)。

3 系統(tǒng)實(shí)現(xiàn)

基于上述的總體架構(gòu)與平臺(tái)設(shè)計(jì),本章將介紹經(jīng)濟(jì)普查系統(tǒng)的實(shí)現(xiàn)。其中包括系統(tǒng)的實(shí)現(xiàn)平臺(tái)、Struts應(yīng)用配置、數(shù)據(jù)持久化層的實(shí)現(xiàn)和系統(tǒng)管理模塊的實(shí)現(xiàn)。

3.1 系統(tǒng)實(shí)現(xiàn)平臺(tái)

經(jīng)濟(jì)普查系統(tǒng)采用tomcat 6.0作為J2EE服務(wù)器,數(shù)據(jù)庫服務(wù)器采用oracle 10g,采用B/S模式。在J2EE體系中,用Struts actionServlet控制,用JSP表現(xiàn),而業(yè)務(wù)邏輯處理層用Javabean實(shí)現(xiàn),持久化層采用Hibernate 3.0實(shí)現(xiàn)。

3.2 Struts應(yīng)用配置

3.2.1 Struts配置

在Web.xml中設(shè)置org.apache.Struts.action.ActionServlet的一個(gè)實(shí)例。在一個(gè)完整的控制過程中,也就是處理一個(gè)HTTP請(qǐng)求時(shí),在控制過程之初,這個(gè)Servlet會(huì)從一個(gè)配置文件Struts-config.xml中獲取請(qǐng)求與控制動(dòng)作相對(duì)應(yīng)的配置信息,Controller通過這些配置信息來決定HTTP請(qǐng)求該往何處轉(zhuǎn)發(fā),而這些Action在接收到轉(zhuǎn)發(fā)來的請(qǐng)求后,實(shí)現(xiàn)真正的商業(yè)邏輯。在Web.xml文件中添加如下代碼:

<!--Struts config-->

action

org.apache.Struts.action.ActionServlet

config

/WEB-INF/Struts-config/Struts-config.xml

2

action

*.do

3.2.2 配置Struts-config.xml文件

Controller通過Struts-config.xml文件的配置信息確定當(dāng)有請(qǐng)求時(shí)該調(diào)用哪個(gè)對(duì)象來處理,Struts-config.xml文件是頁面Struts頁面導(dǎo)航最重要的文件,下面以系統(tǒng)用戶登錄為例介紹系統(tǒng)的文件配置。

身份驗(yàn)證是在許可用戶(應(yīng)用程序)訪問某個(gè)資源之前,鑒別其身份。授權(quán)發(fā)生在身份驗(yàn)證之后,是確定用戶訪問資源時(shí)可享用的特權(quán)。未經(jīng)過身份驗(yàn)證的用戶被稱為匿名用戶。身份驗(yàn)證是Web應(yīng)用程序安全性的主要功能,系統(tǒng)登錄由賬戶和密碼組成。

配置ActionForm,前面介紹過一般一個(gè)Jsp頁面需要對(duì)應(yīng)一個(gè)Model,即這里的ActionForm,此登錄表單對(duì)應(yīng)的ActionForm如下:

public class LoginForm extends ActionForm {

private static final long serialVersionUID

=0x37fa8cd9c5eb4cd6L;

String userId;

String passwd;

public LoginForm() {

}

public String getPasswd() {

return passwd; }

public void setPasswd(String passwd) {

this.passwd=passwd; }

public String getUserId() {

return userId; }

public void setUserId(String userId) {

this.userId=userId; }

}

3.3 數(shù)據(jù)持久化層的實(shí)現(xiàn)

3.3.1 Hibernate配置文件

⑴ Hibernate.cfg.xml文件的建立

Hibernate可以從Hibernate.properties或者自定義的xml配置文件中讀取和數(shù)據(jù)庫連接有關(guān)的信息,此處我們?cè)贖ibernate.cfg.xml文件中定義數(shù)據(jù)庫:

<!一指定數(shù)據(jù)庫的驅(qū)動(dòng)程序一>

name="Hibernate.connection.driver class">

oracle jdbc.driver.OracleDriver

<!一指定連接數(shù)據(jù)庫的}__>

name="Hibernate.connection.url">jdbc:oracleahin:

@localhost:1521:jp2data

system

<!一指定數(shù)據(jù)庫的密碼一>

zju

<}一指定數(shù)據(jù)庫連接池大小一20

true

<!一指定數(shù)據(jù)庫所適用的SQL方言一>

net.sfHibernate.dialect.Oracle9Dialect

吉隆县| 柘荣县| 岐山县| 尚义县| 巴马| 巴中市| 崇州市| 修武县| 西丰县| 东丰县| 蒙城县| 万山特区| 湖北省| 永靖县| 濉溪县| 光泽县| 礼泉县| 镇巴县| 井陉县| 确山县| 马关县| 柳江县| 施甸县| 会理县| 阿克| 长治县| 博野县| 晋中市| 克拉玛依市| 徐州市| 雅江县| 栾川县| 根河市| 三穗县| 林州市| 三江| 怀远县| 旬阳县| 昌吉市| 黑河市| 封丘县|