999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ASSH框架的運動會信息管理系統設計

2011-03-14 05:12:50王爽
電子設計工程 2011年10期
關鍵詞:數據庫系統

王爽

(西安體育學院網絡管理中心,陜西西安710068)

大型運動會在全國乃至全世界都有著重要的影響,但是對于運動會的管理工作卻是一件比較復雜的事情。如果采用人工處理的方法進行運動會數據輸入、處理和發布,不僅速度慢、效率低、容易出錯,而且也不便于與當前運動會的外圍顯示系統和綜合信息發布系統進行數據共享和信息發布,迫切需要開發一種在網絡環境下運行的,符合實際需要的運動會信息管理系統[1]。因此,利用計算機技術、網絡通信技術、數據庫技術等實現運動會信息的管理,對于減輕繁重的手工勞動,提高工作效率和管理水平,實現運動會管理的信息化和現代化具有重要的現實意義。傳統的開發方法難以快速開發出功能強大、系統可擴展性強的基于Web的應用系統。而一個優秀成熟的框架既可以提高開發效率,又可以保障系統質量。本文將ASSH(AJAX+Struts+Spring+Hibernate)框架引入了運動會信息管理系統應用的開發中,對整合的架構應用進行具體的研究。

1 系統設計及相關技術介紹

系統在物理上由3部分組成,第1部分:前端具有WLAN功能的手持PDA或計算機,以便通過無線網絡與數據處理計算機進行通信,第2部分:數據處理計算機,整個系統的核心部件,包括了所有基礎信息處理的功能。第3部分:數據庫服務器,用于存儲各種基礎信息[2]。

本系統選用J2EE平臺。J2EE的跨平臺操作性很強,可搭建具有可伸縮性、靈活性、易維護性的系統。系統開發基于B/S的三層體系結構,分別是:表示層,位于最上層,離用戶最近,用于顯示數據和接收用戶輸入的數據,為用戶提供一種交互式操作的界面。業務邏輯層:負責處理用戶輸入的信息,或者是將這些信息發送給數據訪問層進行保存,或者是調用數據訪問層中的函數再次讀出這些數據,業務邏輯層也可以包括一些“業務邏輯”描述代碼。持久層:實現對數據的保存和讀取操作。由于采用了三層架構,使得數據的存儲在后臺數據庫服務器上完成,業務功能由成績處理計算機即應用程序服務器完成。采用該模式,客戶端不直接與數據庫服務器相連接,提高了數據庫的安全性。更重要的是,對體育比賽而言,當競賽項目的業務邏輯發生微調時,只需修改成績處理計算機上的程序即可,而不需要對客戶端進行任何改動。

1.1 系統功能

運動會信息管理系統涵蓋以下子系統:

1)系統維護子系統是公用子系統,負責為其它子系統提供公共信息,管理用戶、設置用戶權限和維護系統日志。

2)賽事管理子系統是基本子系統,負責為其它子系統提供運動會信息和比賽項目信息。其中包括注冊系子統,賽制設置子系統,場館管理子系統,比賽主計劃子系統,賽程編排子系統[3]。

3)運動會成績系統運動會成績系統是運動會的核心系統,包括:中心成績系統、場館成績系統、現場計時記分系統。

4)運動會信息發布子系統運動會信息發布系統是運動會對外發布的窗口將涵蓋:

①信息網站;②電視轉播字幕系統;③打印分發系統;④現場LED顯示屏系統。

1.2 ASSH框架介紹

AJAX指異步JavaScript及XML,借助于AJAX,可以在用戶單擊按鈕或鏈接時,利用JavaScript和DHTML立即更新用戶界面,并向服務器發出異步請求,以執行更新或查詢。當請求返回時,就可以使用JavaScript和CSS相應地更新用戶界面,而不是刷新整個頁面,這種特性決定了它適用于需要與服務端頻繁交互,操作即時響應要求高的環境。采用AJAX技術可以減少數據傳輸量以及加快響應速度[4]。

Struts框架,它是一個完美的MVC實現,它有一個中央控制類(一個Servlet),針對不同的業務,用Action類負責頁面跳轉和后臺邏輯運算,Jsp頁面負責數據的輸入和輸出顯示,Form類負責傳遞Action和Jsp中間的數據。Jsp中可以使用Struts框架提供的一組標簽,就像使用html標簽一樣簡單,但是可以完成非常復雜的邏輯。但如果把運算邏輯都放在Struts的Action類里將使得Action類復用度低和邏輯混亂,所以通常會把整個Web應用程序分為3層,Struts負責表示層,它調用業務邏輯層完成運算邏輯,業務邏輯層再調用持久層完成數據庫的讀寫。

Struts調用業務類時,需要新建一個業務類出來,然后使用,業務邏輯層需要調用持久層的類,也需要新建一個持久層類出來用。簡單的說,就是調用者依賴被調用者,它們之間形成了強耦合,如果想在其他地方復用某個類,則這個類依賴的其他類也需要包含。程序就變得很混亂,每個類互相依賴互相調用,復用度極低。如果一個類做了修改,則依賴它的很多類都會受到牽連。

Spring框架,它的作用就是完全解耦類之間的依賴關系,一個類如果要依賴什么,那就是一個接口。只要有一個實現了這個接口的類,就可以輕松的通過xml配置文件把實現類注射到調用接口的那個類里。所有類之間的這種依賴關系就完全通過配置文件的方式替代了。所以Spring框架最核心的就是依賴注射和控制反轉。

Hibernate框架,可以創建一系列的持久化類,每個類的屬性都可以簡單的看做和一張數據庫表的屬性一一對應,也可以實現關系數據庫的各種表間關聯的對應。當需要相關操作時,不用再關注數據庫表,不用再去一行行的查詢數據庫,只需要持久化類就可以完成增刪改查的功能。使軟件開發真正面向對象,而不是面向混亂的代碼,使用Hibernate可以比JDBC方式減少很多的編程量[5]。

另外,由于Spring使用的依賴注射以及AOP(面向方面編程),所以它的這種內部模式非常優秀,同時為了很好的處理事物,Spring集成了Hibernate,使事物管理從Hibernate的持久層提升到了業務層,使用更加方便。

現在的架構是,Struts負責表示層,AJAX則作為Struts在表示層上的補充,Spring負責中間的業務層,Hibernate負責持久層,形成了ASSH框架,其架構如圖1所示。采用上述架構,不僅實現了視圖、控制器與模型的徹底分離,而且還實現了表示層、業務邏輯層與持久層的分離。這樣無論前端如何變化,模型層只需很少的改動,并且數據庫的變化也不會對前端有所影響。系統采用此架構開發,無論在整體架構還是在局部的復雜業務模型中都有了更低的耦合性,而且提高了靈活性與可維護性、可擴展性及可重用性。而且由于不同層之間耦合度小,有利于團隊成員并行工作,大大提高了開發效率。在性能速度、交互性和體驗上也有很大的改善,這樣便消除了單獨使用這些框架開發系統的不足[6]。

圖1 ASSH框架架構圖Fig.1Frame structure of ASSH

2 系統實現

Struts、Spring、Hibernate的優勢分別在于J2EE的表示層,業務邏輯層,持久層。本系統中集成框架的具體做法是用面向對象的分析方法根據需求來提出一個模型,將這些模型采用Java語言來實現出基本的Java對象,然后寫出基本的DAO(數據訪問對象)接口,并給出Hibernate的DAO實現,這樣就可以通過Hibernate框架實現的DAO類來實現Java類與數據庫之間的轉換和訪問,然后由Spring來完成業務邏輯處理。在此架構中,由Struts負責降低系統總架構的耦合性,由Spring負責復雜的業務邏輯處理,由Hibernate負責降低模型部分的開發難度,由AJAX負責在頁面進行監聽和異步處理。

系統的基本業務流程是:在表示層中,首先通過AJAX和JSP頁面實現交互界面,負責傳送請求(Request)和接收響應(Response),然后Struts根據配置文件(Struts-config.xml)將ActionServlet接收到的Request委派給相應的Action處理。在業務邏輯層中,管理服務組件的Spring IOC容器負責向Action提供業務模型組件和該組件的協作對象數據處理(DAO)組件完成業務邏輯,并提供事務處理、緩沖池等容器組件以提升系統性能和保證數據的完整性。而在持久層中,則依賴于Hibernate的對象化映射和數據庫交互,處理DAO組件請求的數據,并返回處理結果。

2.1 持久層的實現

本系統使用Hibernate框架實現應用的持久層,封裝訪問數據庫的實現細節,并向上層提供面向對象的數據訪問API。創建Hibernate框架為應用服務,分為如下3個步驟:1)創建O/R Mapping(對象關系映射)文件;2)創建Hibernate配置文件;3)通過Hibernate API實現具體的DAO數據訪問。

Hibernate通過O/R映射文件將對象與關系型數據相關聯,因此需要編寫和數據庫表相對應的Java持久化類以及對應的映射文件[7]。有了Java持久化類后就可以在此基礎上實現數據訪問類。在Spring框架中,數據訪問類可以從輔助類HibernateDaoSupport繼承,這極大地方便了Hibernate框架在Spring中的使用。以下是用戶管理模塊中,Hibernate映射文件User.hbm.xml的部分代碼。

<class

name=“com.sun.Hibernate.system.User”

table=“SYSTEM_USER”>

<id name=“id”type=“long”column=“ID”>

<generator class=“sequence”>

<param name=“sequence”>seq_user</param>

</generator>

</id>

<property name=“name”type=“java.lang.String”column=“NAME”length=“10”/>

<propertyname=“password”type=“java.lang.String”column=“PASSWORD”length=“10”/>

……

<many-to-one name=“role”

class=“com.sun.Hibernate.system.Role”insert=“false”

update=“false”>

<column name=“ROLEID”/>

</many-to-one>

具體的Hibernate數據源、Session工廠、事務管理、緩沖連接池等功能都由業務邏輯層的Spring容器提供。

2.2 業務邏輯層實現

業務邏輯層由Spring框架支持,提供了處理業務邏輯的服務組件。開發者需要對業務對象建模,抽象出業務模型并封裝在模型組件中。由于數據持久層實現了Java持久化類并且封裝了DAO,因此可以在模型組件中方便地調用DAO組件來存取數據[8]。Spring的IoC容器負責統一管理模型組件和DAO組件以及Spring所提供的事務處理、緩沖連接池等服務組件。

例如:在用戶管理模塊中,通過業務建模創建了用戶模型UserService類,封裝了對用戶的權限管理等功能。UserService類通過調用數據訪問類UserDao實現對用戶數據的操作。這些組件的關系將通過配置Spring框架的applicationContext.xml聯系起來,配置文件的部分代碼如下:

<beanid=“userDAO”class=“com.sun.Spring.system.UserDAOImpl”>

<property name=“sessionFactory”><ref local=“sessionFactory”/></property>

</bean>

<bean id="userDAOProxy"

class=“org.Springframework.transaction.interceptor.

TransactionProxyFactoryBean”>

<property name=“transactionManager”><ref bean=“transactionManager”/></property>

<property name=“target”><ref local=“userDAO”/></property>

……

</bean>

<bean name=“/user”class=“com.sun.Struts.actions.system.UserAction”singleton=“false”>

<propertyname=“userDAO”><refbean=“userDAOProxy”/></property>

……

</bean>

2 .3表示層實現

本系統中表示層主要由Struts框架,AJAX技術實現,設計嚴格依照MVC模式,其中V(視圖層)通過Jsp頁面實現,C(控制層)由Servlet實現,M(模型層)則由Action及AJAX后臺程序實現,下面舉系統中的一個例子來說明Struts和AJAX在表示層的應用。在管理人員添加頁面中,當用戶在Jsp頁面中填寫完人員姓名、密碼等信息后,JavaScript中相應的XMLHttpRequest回調函數將異步派發XMLHttpRequest請求,后臺將根據提供的姓名、密碼從數據庫相應表中得到該人員個人基本信息。隨后服務器響應會傳到瀏覽器,在解析請求參數后,Servlet執行必需的應用邏輯,將響應信息封裝到XML中,并將它寫回HttpServletResponse。客戶端注冊在XMLHttpRequest上的回調函數現在會被回調,用以處理由服務器返回的數據,并通過更新用戶界面來響應服務器傳輸過來的數據[9]。信息完成后提交時,所有需要保存的數據通過表單提交給相應的Servlet。由其根據配置文件調用相應Action進行后續處理。這樣做的好處是使視圖層、控制層、模型層完全分離,同時加入了AJAX的異步處理功能,使系統無論是在安全性、可擴展性還是交互性上較之普通設計都有明顯提高。

控制器是按Struts-config.xml文件中的配置來決定業務流的轉向,開發人員在業務流控制方面的主要工作是對Strutsconfig.xml進行配置[10],Struts-config.xml部分代碼如下:

<form-bean name=“userForm”

type=“com.sun.Struts.forms.system.UserForm”/>

</form-beans>

<global-forwards>

<forward name=“index”path=“/index.Jsp”/>

<forward name=“login”path=“/login.Jsp”/>

……

</global-forwards>

<action-mappings>

……

<action path=“/user”name=“userForm”validate=“false”parameter=“method”

type=“org.Springframework.Web.Struts.DelegatingActionProxy”>

……

<forward name=“password”path=“/pages/system/user/password.Jsp”/>

</action>

在Struts-config.xml文件中定義保存HTTP表單對應的Form和對應的Action類。Form Bean必須在Struts-config.xml進行正確配置后,才能被程序引用。

3 總結

系統采用AJAX+Struts+Spring+Hibernate開源框架技術。在此架構中,表示層采用Struts,業務邏輯層采用Spring,數據持久層選擇Hibernate。整個架構能夠很好地實現控制流、業務調用、表示這3者的分離,集成后的框架具備了3種框架的技術優勢,將Struts的MVC機制,Spring的反轉控制機制以及Hibernate的O/R Mapping映射機制融合在一起,此架構在系統開發簡潔性、開發效率、開發成本以及維護費用等方面有著很大的優勢,同時,采用了當下十分流行的AJAX技術,這使系統具有更加完美的用戶體驗。

[1]劉槐德.高校運動會綜合信息管理系統的設計與實現[D].重慶:重慶大學,2009:9-10.

[2]宋依青,李書旗,王海濱.基于WLAN的分布式競賽打分系統的設計與實現[J].微電子學與計算機,2009,26(11):165-168.SONGYi-qing,LIShu-qi,WANGHai-bin.Designand realization of distributional competition grading system based on the WLAN[J].Microelectronics&Computer,2006,26(11):165-168.

[3]蒲川江.奧運比賽管理系統分析與設計及關鍵技術研究[D].北京:清華大學,2005:14-16.

[4]Woolston D.Pro Ajax and the NET 2.0 platform[M].LosAngeles,California,USA:Wager T Press,2006.

[5]李剛.輕量級企業應用實戰—Struts+Spring+Hibernate整合開發[M].北京:電子工業出版社,2007.

[6]傅鸝,殷旻昊.基于Struts+Spring+Hibernate+Ajax技術的科研管理系統設計[J].軟件導刊,2009,8(1):134-136.FU Li,YIN Min-hao.Design of research management system based on Struts+Spring+Hibernate+Ajax technology[J].Software Guide,2009,8(1):134-136.

[7]諶湘倩,狄文輝,孫冬.基于SSH框架與AJAX技術的Java Web應用開發[J].計算機工程與設計,2009,30(10):2590-2592.CHEN Xiang-qian,DI Wen-hui,SUN Dong.Application of Java Web Based on SSH and AJAX[J].Computer Engineering and Design,2009,30(10):2590-2592.

[8]楊波,劉淵,冷文浩.基于Struts+Hibernate+Spring架構的船舶數字化平臺的設計與實現[J].計算機應用與軟件,2008,25(2):1409-1412.YANG Bo,LIU Yuan,LENG Wen-hao.Ship digitized platform based on architecture of Struts&Hibernate&Spring[J].Computer Applications and Software 2008,25(2):1409-1412.

[9]肖杰,陳翔,何海江,等.基于AJAX和Struts的Web應用的設計與實現[J].計算機工程與設計,2009,30(8):1934-1938.XIAO Jie,CHEN Xiang,HE Hai-jiang,et al.Design and implementation of Web application based on AJAX and Struts[J].Computer Engineering and Design,2009,30(8):1934-1938.

[10]王軍豪,彭巖.Hibernate+Struts+Spring整合技術在電子政務中的應用[J].計算機工程與設計,2008,29(6):1409-1412.WANG Jun-hao,PENG Yan.Application of Hibernate+Struts+SpringintegratetechnologyinE-government[J].Computer Engineering and Design,2008,29(6):1409-1412.

猜你喜歡
數據庫系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
主站蜘蛛池模板: AV熟女乱| 欧美a级在线| 久久久久人妻精品一区三寸蜜桃| 91口爆吞精国产对白第三集| 国语少妇高潮| 亚洲中字无码AV电影在线观看| 欧美午夜精品| 亚洲欧美国产高清va在线播放| 亚洲性日韩精品一区二区| 国产人免费人成免费视频| 无码精油按摩潮喷在线播放| 波多野结衣视频网站| 永久免费av网站可以直接看的| 欧美日韩一区二区三区四区在线观看| 亚洲天堂.com| 国产自视频| 国产免费人成视频网| 亚洲av无码片一区二区三区| 国产91无码福利在线| 亚洲精品老司机| 亚洲一区二区视频在线观看| 依依成人精品无v国产| 中文字幕1区2区| 久久香蕉国产线看观看精品蕉| 亚洲无码熟妇人妻AV在线| 欧美亚洲激情| 人妻精品全国免费视频| 一级福利视频| 国产精品手机在线播放| 国产精品久久久久久久久久久久| 色天天综合| 亚洲日本在线免费观看| 久久精品欧美一区二区| 国产精品午夜福利麻豆| 亚洲av成人无码网站在线观看| 国产杨幂丝袜av在线播放| 无码高清专区| 国产欧美中文字幕| 欧美精品色视频| 成人在线综合| 999国内精品久久免费视频| 精品国产自在在线在线观看| 19国产精品麻豆免费观看| 国产91高清视频| 国产乱人乱偷精品视频a人人澡| 亚洲天堂2014| 色婷婷亚洲综合五月| 国产精品毛片一区视频播| 麻豆国产精品一二三在线观看| m男亚洲一区中文字幕| 99r在线精品视频在线播放| 亚洲第七页| 亚洲美女一级毛片| AⅤ色综合久久天堂AV色综合| 黄片在线永久| 国禁国产you女视频网站| 亚洲aaa视频| 欧美黑人欧美精品刺激| 91免费观看视频| 久久窝窝国产精品午夜看片| 538国产在线| 亚洲一区二区精品无码久久久| 波多野一区| 午夜精品国产自在| 国产成人久久777777| 久久久久亚洲精品成人网| 高清无码不卡视频| 免费高清毛片| 久久黄色一级视频| 国产成人喷潮在线观看| 精品人妻系列无码专区久久| 在线观看热码亚洲av每日更新| 亚洲人成网线在线播放va| 国产精品流白浆在线观看| 国产电话自拍伊人| 日韩欧美国产三级| 无遮挡国产高潮视频免费观看| 五月天综合网亚洲综合天堂网| a级毛片毛片免费观看久潮| 99视频国产精品| 在线观看欧美国产| 色香蕉影院|