李路,馮思玲,王湛宇
(海南大學(xué)信息科學(xué)技術(shù)學(xué)院,???570228)
基于SSH的運動會管理系統(tǒng)
李路,馮思玲,王湛宇
(海南大學(xué)信息科學(xué)技術(shù)學(xué)院,???570228)
基于SSH框架技術(shù),設(shè)計實現(xiàn)以B/S為系統(tǒng)架構(gòu)的基于Internet的Web開發(fā)的運動會管理系統(tǒng)。將實現(xiàn)MVC設(shè)計模式的SSH框架引入到運動會管理系統(tǒng)中,用于實現(xiàn)運動會的人員管理和賽事信息管理以及運動員報名參賽等功能。該系統(tǒng)運行良好,可實際應(yīng)用于運動會的管理工作中并使運動會的管理變得更加便捷高效。
Struts2;Spring;Hibernate;B/S系統(tǒng)架構(gòu);運動會管理系統(tǒng)
在當(dāng)今社會上,體育運動越來越普及,運動會作為體育運動的盛會也越來越受重視。傳統(tǒng)的運動會開辦時,運動員的報名、賽事的安排、比賽場地的安排和成績的記錄等操作全都由組織者經(jīng)人力完成,但是,隨著參與運動會的人數(shù)越來越多,管理工作就更加費時費力,而且容易出錯。
在自動化信息化的今天運動會管理系統(tǒng)仍然很少被普及,而計算機(jī)的應(yīng)用能大大減少了人力的耗費,也使得管理工作更加便捷高效。查詢資料發(fā)現(xiàn)以往的運動會管理系統(tǒng)[1]所用技術(shù)老舊,效率方面已經(jīng)不適用于現(xiàn)在的運動會管理工作。也有基于Struts2框架技術(shù)但沒有用于運動會管理系統(tǒng)[2-4]。所以本文基于SSH技術(shù)設(shè)計并實現(xiàn)運動會管理系統(tǒng)。該系統(tǒng)可完成田徑運動會管理中的運動員報名、分組編排,競賽成績處理及公告,成績統(tǒng)計,信息查詢等事務(wù)處理功能,極大地減小工作人員的勞動量,同時還可大大提高工作效率、可靠性和正確性。
本系統(tǒng)基于現(xiàn)在主流的SSH框架進(jìn)行設(shè)計,依據(jù)關(guān)系型數(shù)據(jù)庫理論設(shè)計數(shù)據(jù)庫的結(jié)構(gòu),充分發(fā)揮了SHH框架優(yōu)勢,提高了代碼的結(jié)構(gòu)清晰度,可維護(hù)性更高,節(jié)省了程序員大量的開發(fā)時間。
1.1 系統(tǒng)功能分析
運動會管理系統(tǒng)主要目的是為了使運動會組織者更方便快捷和規(guī)范的組織和管理運動會的人員信息和賽事安排。系統(tǒng)的主要功能有公布賽事,運動員報名參賽,各用戶查詢賽事及賽事成績以便了解運動會的賽事情況。
1.2 系統(tǒng)數(shù)據(jù)分析
通過分析運動會系統(tǒng)主要目的和功能,設(shè)計實現(xiàn)以下數(shù)據(jù)結(jié)構(gòu):
用戶具有用戶名、密碼、用戶類型等信息方便系統(tǒng)的登錄、注冊功能的實現(xiàn)。運動員具有姓名、性別、年齡、身高體重、身份證號、運動員編號、參賽的項目等屬性。賽事具有比賽項目、比賽時間、比賽地點、參賽人員等屬性。成績具有運動員編號、比賽項目、比賽時間、比賽地點、運動員成績、運動員名次等屬性。
2.1 系統(tǒng)邏輯結(jié)構(gòu)
從邏輯上將本系統(tǒng)劃分為四層。分別是數(shù)據(jù)資源層(Oracle),數(shù)據(jù)訪問層(DAO),業(yè)務(wù)邏輯層(Service),Web表現(xiàn)層(JSP)。系統(tǒng)的邏輯結(jié)構(gòu)如圖1所示。
圖1 邏輯結(jié)構(gòu)圖
運動會管理系統(tǒng)的四層結(jié)構(gòu)分別采用以下技術(shù)建立:數(shù)據(jù)庫采用Oracle,數(shù)據(jù)訪問層采用Hibernate實體映射的方式管理數(shù)據(jù)持久性,業(yè)務(wù)邏輯層以DAO層為基礎(chǔ),通過對DAO組件的正面模式包裝,完成系統(tǒng)所要求的業(yè)務(wù)邏輯。Web表現(xiàn)層采用Struts2攔截器截取用戶請求調(diào)用對應(yīng)的Action處理用戶請求。通過JSP頁面展示界面效果。
2.2 系統(tǒng)功能結(jié)構(gòu)
根據(jù)系統(tǒng)的使用對象的不同把選課系統(tǒng)劃分為管理員、錄入員、運動員、游客四個模塊,如圖2所示。系統(tǒng)管理員主要負(fù)責(zé)管理用戶賬號,查看賬號信息以及重置用戶密碼,以及分配錄入員賬號。錄入員負(fù)責(zé)根據(jù)賽事安排以及運動員的報名情況進(jìn)行賽事的發(fā)布和比賽結(jié)果成績的錄入。運動員負(fù)責(zé)錄入自己的運動員信息,并由系統(tǒng)自動分配運動員編號,運動員還可以通過系統(tǒng)報名參加賽事和查看自己的比賽成績。觀眾擁有最低的系統(tǒng)權(quán)限只能查看賽事和賽事成績。所有用戶都可以修改自己的賬號密碼。
圖2 功能結(jié)構(gòu)圖
2.3 系統(tǒng)功能設(shè)計
本系統(tǒng)按照角色劃分功能模塊分別劃分為四個角色功能模塊。
(1)管理員
管理員角色不可以注冊,通過數(shù)據(jù)庫直接插入管理元數(shù)據(jù),角色主要功能是對用戶賬號的管理以及權(quán)限的分配。通過用戶名和用戶類型對用戶賬號進(jìn)行查詢,并且可以在用戶忘記密碼時對用戶密碼進(jìn)行重置。管理員還可以對運動員信息進(jìn)行管理,檢查運動員信息是否規(guī)范正確等。對于錄入員角色根據(jù)系統(tǒng)安全性需要不在登錄注冊頁面開放錄入員角色的注冊功能,只在管理員的功能界面開放新增錄入員的功能。由管理員統(tǒng)一注冊分配權(quán)限。管理員模塊流程圖見圖3。
(2)錄入員
錄入員角色擁有對比賽和比賽成績操作的功能權(quán)限,根據(jù)賽事安排,輸入比賽項目、時間、地點、參賽選手編號等信息提交到系統(tǒng)來新增比賽。可以通過數(shù)據(jù)庫觸發(fā)器創(chuàng)建對應(yīng)比賽成績數(shù)據(jù)等待錄入員通過系統(tǒng)將比賽結(jié)果錄入。錄入員還可以對賽事進(jìn)行刪除,在觸發(fā)器的作用下對應(yīng)賽事成績也將自動刪除。錄入員模塊流程圖見圖4。
(3)運動員
注冊運動員賬號時后臺數(shù)據(jù)庫通過觸發(fā)器自動創(chuàng)建運動員信息并自動分配運動員編號,運動員只需登陸系統(tǒng)后在錄入運動員信息,例如身高、體重、性別、年齡、教練、所屬隊伍等各項信息。運動員還可以查詢自己的信息,在這里可以查詢到上述錄入的信息還有運動員的編號。運動員可以報名參賽,將參賽信息提交到系統(tǒng)中。運動員模塊流程圖見圖5。
(4)觀眾
觀眾角色功能相對簡單,只擁有一些公用的功能,包括查詢賽事、查詢成績及修改賬號密碼功能。
查詢賽事和查詢成績據(jù)可通過比賽項目和類型進(jìn)行條件查詢,觀眾模塊流程圖見圖6。
2.4 數(shù)據(jù)庫設(shè)計
數(shù)據(jù)表是數(shù)據(jù)庫中一個非常重要的組成部分,是其他對象的基礎(chǔ),在運動會管理系統(tǒng)中共設(shè)計了五張表分別是用戶表(t_user)、運動員表(t_athlete)、賽事表(t_sport)、成績表(t_score)、比賽項目表(t_sportpro?ject),其表結(jié)構(gòu)關(guān)系如圖7。同時為了保證數(shù)據(jù)庫數(shù)據(jù)的完整性,本系統(tǒng)增加了對賽事表操作的觸發(fā)器。觸發(fā)器可保證每一個賽事對應(yīng)一個成績表,當(dāng)刪除賽事時對應(yīng)成績也隨之刪除。這樣就保證了數(shù)據(jù)的完整性。
圖3 管理員模塊流程圖
圖4 錄入員模塊流程圖
圖5 運動員模塊流程圖
圖6 游客模塊流程圖
圖7 表結(jié)構(gòu)關(guān)系圖
3.1 Struts2
本系統(tǒng)采用Struts2框架,采用MVC(Model-View-Controller)設(shè)計模式。本系統(tǒng)中將Hibernate持久化適配為 Struts中的模型(Model),在動作類(Action)中通過對象調(diào)用Service層中的業(yè)務(wù)邏輯訪問DAO層進(jìn)行數(shù)據(jù)持久化??刂破鳎–ontroller)主要由Struts的攔截器接受用戶請求,攔截并分配這些請求到相應(yīng)的動作類。最后動作類會把返回結(jié)果回饋給Struts控制器,由Struts將控制權(quán)移交JSP頁面生成視圖(View)。Struts配置文件(struts2)如下:
3.2 Hibernate
本系統(tǒng)采用Hibernate解決Java實體類和數(shù)據(jù)庫表之間的映射關(guān)系,Hibernate提供了一種在Java語言下的對象關(guān)系映射的解決方案。通過配置實體映射文件與數(shù)據(jù)表相關(guān)聯(lián)。簡化了JDBC繁瑣的操作,使系統(tǒng)執(zhí)行持久化操作更加方便。User實映射文件(t_user.hbm.xml)如下:
采用SPSS 19.0統(tǒng)計學(xué)軟件對數(shù)據(jù)進(jìn)行處理,計量資料以“±s”表示,采用t檢驗。以P<0.05為差異有統(tǒng)計學(xué)意義。
3.3 Spring
Spring框架是一個開源的應(yīng)用程序框架?;赟pring中間層可以輕易地與任何基于MVC框架的網(wǎng)頁層相結(jié)合??梢砸再Y源容器DAO實現(xiàn)和事務(wù)策略等形式與Hibernate集成等。利用Spring框架整合Struts2與Hibernate使得底層代碼更加簡潔方便管理。本運動會管理系統(tǒng)采用全注解的聲明式事務(wù)方式。全注解聲明式事務(wù)的管理方法允許我們在配置和注解的幫助下來管理事務(wù)。
applicationContext.xml
expression="execution(* com.L.service.impl.*.*(..))"id="pointcut"/> 3.4 代碼結(jié)構(gòu) 系統(tǒng)代碼結(jié)構(gòu)圖如圖8、9所示。 圖8 代碼結(jié)構(gòu)圖1 圖9 代碼結(jié)構(gòu)圖2 3.5 核心功能 (1)添加賽事功能 添加賽事功能:錄入員登錄系統(tǒng)(如圖10)后選擇添加賽事功能進(jìn)入添加賽事頁面(如圖11)。 本系統(tǒng)功能基于MVC模型結(jié)構(gòu)設(shè)計(見圖12)具體操作如下。在該頁面錄入員輸入所需的比賽項目、比賽時間、比賽地點等信息后點擊提交按鈕。數(shù)據(jù)以表單的形式傳入對后臺發(fā)送請求,通過Struts的攔截器攔截請求后,將請求分配至對應(yīng)Action。在Action中通過模型驅(qū)動將表單中的信息封裝到實體類中,以注解的方式獲取Service層對象調(diào)用業(yè)務(wù)代碼執(zhí)行相應(yīng)操作。最后將數(shù)據(jù)傳入DAO層進(jìn)行數(shù)據(jù)持久化操作,完成新增賽事。在數(shù)據(jù)持久化過程中通過事務(wù)管理保持?jǐn)?shù)據(jù)的完整性,出現(xiàn)錯誤時將回退數(shù)據(jù)庫操作。最終根據(jù)執(zhí)行結(jié)果逐層反饋至Struts控制器中由控制器分配權(quán)限至Web表現(xiàn)層將操作結(jié)果呈現(xiàn)。 圖10 錄入員頁面 圖11 添加賽事頁面 (2)登錄注冊功能 登錄注冊部分是系統(tǒng)中對于維護(hù)系統(tǒng)安全性比較重要的部分,為了保證系統(tǒng)的安全性以及數(shù)據(jù)不被惡意破壞,在注冊頁面(圖14)不對用戶開放管理員和錄入員的注冊功能只提供運動員和觀眾的賬號注冊。 通過JavaScript的驗證表單中兩次密碼是否一致,如果不一致則阻止表單提交。為了保證用戶賬號的唯一性。在用戶進(jìn)行注冊操作時先查詢數(shù)據(jù)庫中是否存在同名用戶,如果存在則提示用戶名重復(fù),建議用戶修改用戶名后重新注冊。 圖12 MVC模型 圖13 登錄注冊頁面 用戶在登錄部分進(jìn)行登錄操作時,系統(tǒng)通過用戶名查找用戶信息與用戶輸入的信息進(jìn)行比對,全部一致時,根據(jù)用戶類型的不同跳轉(zhuǎn)到相應(yīng)頁面。 (3)查詢功能 查詢功能是運動會管理系統(tǒng)方便廣大用戶的一個功能。通過查詢功能用戶可以查詢到目前的所有賽事信息和成績。方便用戶了解運動會的舉辦情況及比賽結(jié)果。查詢功能分為兩部分,查詢賽事(圖14)和查詢成績(圖15)。所有用戶都可以使用這兩個功能。 查詢賽事和查詢成績均可以通過比賽類型和比賽項目進(jìn)行篩選方便用戶快速找到想要查詢的信息。 圖14 查詢賽事頁面 圖15 查詢成績頁面 本系統(tǒng)基于SSH框架整合和MVC架構(gòu)模式開發(fā)運動會管理系統(tǒng),通過Struts2框架將業(yè)務(wù)邏輯與顯示頁面分離。服務(wù)端只需通過Tomcat發(fā)布程序,即可在任意客戶端通過瀏覽器訪問本系統(tǒng),不僅有效的提高了系統(tǒng)的開發(fā)效率,使得系統(tǒng)具有高性能、可擴(kuò)展性、重用性以及高安全性的特點,而且使得運動會管理系統(tǒng)擁有更廣的適用性。 [1]楊曉娟.普通高校田徑運動會管理系統(tǒng)的開發(fā)[J].微計算機(jī)應(yīng)用,2000(6):65-65. [2]余銀山胡正華.基于Struts2框架的Web應(yīng)用開發(fā)研究[J].電腦知識與技術(shù),2009(16):136-137. [3]汪宇棟.基于web技術(shù)的百大集團(tuán)辦公信息系統(tǒng)的設(shè)計與實現(xiàn)[D].電子科技大學(xué),2012. [4]張立超.基于Java的IoC容器的設(shè)計與實現(xiàn)[D].吉林大學(xué),2009. Abstract:Designs and realizes the sports meeting management system based on Internet for B/S system architecture and SSH framework.Introduces the SSH framework to realize MVC design mode into the sports meeting management system,the system includes staff management,event information management,athletes registration and other functions.The system is running well and can be applied to the games manage?ment,and make the games management more conveniently and efficiently. Keywords:Struts2;Spring;Hibernate;B/S System Architecture;Sports Meeting Management System Sports Meeting Management System Based on SSH LI Lu,F(xiàn)ENG Si-ling,WANG Zhan-yu 1007-1423(2017)25-0067-06 10.3969/j.issn.1007-1423.2017.25.017 海南省自然基金項目(No.20156226)、海南大學(xué)科研啟動基金項目(No.kyqd1533) 李路(1995-),內(nèi)蒙古烏蘭察布人,本科,從事領(lǐng)域為軟件系統(tǒng)開發(fā)研究 馮思玲(1973-),女,河南新鄉(xiāng)人,副教授,博士,從事領(lǐng)域為智能算法研究,Email:fengsiling2008@163.com 王湛宇(1995-),男,山西長治人,碩士研究生,研究方向為軟件工程方向 2017-05-27 2017-08-104 結(jié)語
(College of Information Science&Technology,Hainan University,Haikou 570228)