• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

    2013-02-20 05:37:16張麗虹
    計算機時代 2013年2期

    張麗虹

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

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

    中圖分類號:TP311 文獻標志碼:A 文章編號: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 引言

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

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

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

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

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

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

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

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

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

    2.1 需求陳述

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

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

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

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

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

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

    2.2 系統(tǒng)功能

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

    2.2.1 制度管理

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

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

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

    2.2.3 審核管理

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

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

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

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

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

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

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

    2.2.7 系統(tǒng)管理

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

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

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

    2.3.1 概念設(shè)計

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

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

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

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

    代碼] [單位

    代碼] [單位

    名稱] [主營

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

    時間]

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

    2.3.2 邏輯設(shè)計

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

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

    2.3.3 物理設(shè)計

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

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

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

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

    ⑵ 對物理結(jié)構(gòu)進行評價,評價的重點是時間和空間效率

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

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

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

    3.1 系統(tǒng)實現(xiàn)平臺

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

    3.2 Struts應(yīng)用配置

    3.2.1 Struts配置

    在Web.xml中設(shè)置org.apache.Struts.action.ActionServlet的一個實例。在一個完整的控制過程中,也就是處理一個HTTP請求時,在控制過程之初,這個Servlet會從一個配置文件Struts-config.xml中獲取請求與控制動作相對應(yīng)的配置信息,Controller通過這些配置信息來決定HTTP請求該往何處轉(zhuǎn)發(fā),而這些Action在接收到轉(zhuǎn)發(fā)來的請求后,實現(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文件的配置信息確定當有請求時該調(diào)用哪個對象來處理,Struts-config.xml文件是頁面Struts頁面導(dǎo)航最重要的文件,下面以系統(tǒng)用戶登錄為例介紹系統(tǒng)的文件配置。

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

    配置ActionForm,前面介紹過一般一個Jsp頁面需要對應(yīng)一個Model,即這里的ActionForm,此登錄表單對應(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ù)持久化層的實現(xiàn)

    3.3.1 Hibernate配置文件

    ⑴ Hibernate.cfg.xml文件的建立

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

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

    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

    清流县| 衢州市| 博乐市| 庆城县| 定安县| 哈尔滨市| 舒城县| 温泉县| 宝鸡市| 西乌| 西畴县| 乌拉特前旗| 万年县| 都江堰市| 庄河市| 南平市| 衡阳市| 钟山县| 建水县| 平阳县| 湟源县| 安平县| 绿春县| 白玉县| 武冈市| 阳山县| 青田县| 石泉县| 林芝县| 沙坪坝区| 丽江市| 吕梁市| 哈密市| 裕民县| 东方市| 昌宁县| 鹤壁市| 永清县| 镇远县| 涞源县| 叶城县|