李路,馮思玲,王湛宇
(海南大學信息科學技術學院,海口 570228)
基于SSH的運動會管理系統
李路,馮思玲,王湛宇
(海南大學信息科學技術學院,海口 570228)
基于SSH框架技術,設計實現以B/S為系統架構的基于Internet的Web開發的運動會管理系統。將實現MVC設計模式的SSH框架引入到運動會管理系統中,用于實現運動會的人員管理和賽事信息管理以及運動員報名參賽等功能。該系統運行良好,可實際應用于運動會的管理工作中并使運動會的管理變得更加便捷高效。
Struts2;Spring;Hibernate;B/S系統架構;運動會管理系統
在當今社會上,體育運動越來越普及,運動會作為體育運動的盛會也越來越受重視。傳統的運動會開辦時,運動員的報名、賽事的安排、比賽場地的安排和成績的記錄等操作全都由組織者經人力完成,但是,隨著參與運動會的人數越來越多,管理工作就更加費時費力,而且容易出錯。
在自動化信息化的今天運動會管理系統仍然很少被普及,而計算機的應用能大大減少了人力的耗費,也使得管理工作更加便捷高效。查詢資料發現以往的運動會管理系統[1]所用技術老舊,效率方面已經不適用于現在的運動會管理工作。也有基于Struts2框架技術但沒有用于運動會管理系統[2-4]。所以本文基于SSH技術設計并實現運動會管理系統。該系統可完成田徑運動會管理中的運動員報名、分組編排,競賽成績處理及公告,成績統計,信息查詢等事務處理功能,極大地減小工作人員的勞動量,同時還可大大提高工作效率、可靠性和正確性。
本系統基于現在主流的SSH框架進行設計,依據關系型數據庫理論設計數據庫的結構,充分發揮了SHH框架優勢,提高了代碼的結構清晰度,可維護性更高,節省了程序員大量的開發時間。
1.1 系統功能分析
運動會管理系統主要目的是為了使運動會組織者更方便快捷和規范的組織和管理運動會的人員信息和賽事安排。系統的主要功能有公布賽事,運動員報名參賽,各用戶查詢賽事及賽事成績以便了解運動會的賽事情況。
1.2 系統數據分析
通過分析運動會系統主要目的和功能,設計實現以下數據結構:
用戶具有用戶名、密碼、用戶類型等信息方便系統的登錄、注冊功能的實現。運動員具有姓名、性別、年齡、身高體重、身份證號、運動員編號、參賽的項目等屬性。賽事具有比賽項目、比賽時間、比賽地點、參賽人員等屬性。成績具有運動員編號、比賽項目、比賽時間、比賽地點、運動員成績、運動員名次等屬性。
2.1 系統邏輯結構
從邏輯上將本系統劃分為四層。分別是數據資源層(Oracle),數據訪問層(DAO),業務邏輯層(Service),Web表現層(JSP)。系統的邏輯結構如圖1所示。

圖1 邏輯結構圖
運動會管理系統的四層結構分別采用以下技術建立:數據庫采用Oracle,數據訪問層采用Hibernate實體映射的方式管理數據持久性,業務邏輯層以DAO層為基礎,通過對DAO組件的正面模式包裝,完成系統所要求的業務邏輯。Web表現層采用Struts2攔截器截取用戶請求調用對應的Action處理用戶請求。通過JSP頁面展示界面效果。
2.2 系統功能結構
根據系統的使用對象的不同把選課系統劃分為管理員、錄入員、運動員、游客四個模塊,如圖2所示。系統管理員主要負責管理用戶賬號,查看賬號信息以及重置用戶密碼,以及分配錄入員賬號。錄入員負責根據賽事安排以及運動員的報名情況進行賽事的發布和比賽結果成績的錄入。運動員負責錄入自己的運動員信息,并由系統自動分配運動員編號,運動員還可以通過系統報名參加賽事和查看自己的比賽成績。觀眾擁有最低的系統權限只能查看賽事和賽事成績。所有用戶都可以修改自己的賬號密碼。

圖2 功能結構圖
2.3 系統功能設計
本系統按照角色劃分功能模塊分別劃分為四個角色功能模塊。
(1)管理員
管理員角色不可以注冊,通過數據庫直接插入管理元數據,角色主要功能是對用戶賬號的管理以及權限的分配。通過用戶名和用戶類型對用戶賬號進行查詢,并且可以在用戶忘記密碼時對用戶密碼進行重置。管理員還可以對運動員信息進行管理,檢查運動員信息是否規范正確等。對于錄入員角色根據系統安全性需要不在登錄注冊頁面開放錄入員角色的注冊功能,只在管理員的功能界面開放新增錄入員的功能。由管理員統一注冊分配權限。管理員模塊流程圖見圖3。
(2)錄入員
錄入員角色擁有對比賽和比賽成績操作的功能權限,根據賽事安排,輸入比賽項目、時間、地點、參賽選手編號等信息提交到系統來新增比賽。可以通過數據庫觸發器創建對應比賽成績數據等待錄入員通過系統將比賽結果錄入。錄入員還可以對賽事進行刪除,在觸發器的作用下對應賽事成績也將自動刪除。錄入員模塊流程圖見圖4。
(3)運動員
注冊運動員賬號時后臺數據庫通過觸發器自動創建運動員信息并自動分配運動員編號,運動員只需登陸系統后在錄入運動員信息,例如身高、體重、性別、年齡、教練、所屬隊伍等各項信息。運動員還可以查詢自己的信息,在這里可以查詢到上述錄入的信息還有運動員的編號。運動員可以報名參賽,將參賽信息提交到系統中。運動員模塊流程圖見圖5。
(4)觀眾
觀眾角色功能相對簡單,只擁有一些公用的功能,包括查詢賽事、查詢成績及修改賬號密碼功能。
查詢賽事和查詢成績據可通過比賽項目和類型進行條件查詢,觀眾模塊流程圖見圖6。
2.4 數據庫設計
數據表是數據庫中一個非常重要的組成部分,是其他對象的基礎,在運動會管理系統中共設計了五張表分別是用戶表(t_user)、運動員表(t_athlete)、賽事表(t_sport)、成績表(t_score)、比賽項目表(t_sportpro?ject),其表結構關系如圖7。同時為了保證數據庫數據的完整性,本系統增加了對賽事表操作的觸發器。觸發器可保證每一個賽事對應一個成績表,當刪除賽事時對應成績也隨之刪除。這樣就保證了數據的完整性。

圖3 管理員模塊流程圖

圖4 錄入員模塊流程圖

圖5 運動員模塊流程圖

圖6 游客模塊流程圖

圖7 表結構關系圖
3.1 Struts2
本系統采用Struts2框架,采用MVC(Model-View-Controller)設計模式。本系統中將Hibernate持久化適配為 Struts中的模型(Model),在動作類(Action)中通過對象調用Service層中的業務邏輯訪問DAO層進行數據持久化。控制器(Controller)主要由Struts的攔截器接受用戶請求,攔截并分配這些請求到相應的動作類。最后動作類會把返回結果回饋給Struts控制器,由Struts將控制權移交JSP頁面生成視圖(View)。Struts配置文件(struts2)如下:
3.2 Hibernate
本系統采用Hibernate解決Java實體類和數據庫表之間的映射關系,Hibernate提供了一種在Java語言下的對象關系映射的解決方案。通過配置實體映射文件與數據表相關聯。簡化了JDBC繁瑣的操作,使系統執行持久化操作更加方便。User實映射文件(t_user.hbm.xml)如下:
采用SPSS 19.0統計學軟件對數據進行處理,計量資料以“±s”表示,采用t檢驗。以P<0.05為差異有統計學意義。
3.3 Spring
Spring框架是一個開源的應用程序框架。基于Spring中間層可以輕易地與任何基于MVC框架的網頁層相結合。可以以資源容器DAO實現和事務策略等形式與Hibernate集成等。利用Spring框架整合Struts2與Hibernate使得底層代碼更加簡潔方便管理。本運動會管理系統采用全注解的聲明式事務方式。全注解聲明式事務的管理方法允許我們在配置和注解的幫助下來管理事務。
applicationContext.xml
expression="execution(* com.L.service.impl.*.*(..))"id="pointcut"/> 3.4 代碼結構 系統代碼結構圖如圖8、9所示。 圖8 代碼結構圖1 圖9 代碼結構圖2 3.5 核心功能 (1)添加賽事功能 添加賽事功能:錄入員登錄系統(如圖10)后選擇添加賽事功能進入添加賽事頁面(如圖11)。 本系統功能基于MVC模型結構設計(見圖12)具體操作如下。在該頁面錄入員輸入所需的比賽項目、比賽時間、比賽地點等信息后點擊提交按鈕。數據以表單的形式傳入對后臺發送請求,通過Struts的攔截器攔截請求后,將請求分配至對應Action。在Action中通過模型驅動將表單中的信息封裝到實體類中,以注解的方式獲取Service層對象調用業務代碼執行相應操作。最后將數據傳入DAO層進行數據持久化操作,完成新增賽事。在數據持久化過程中通過事務管理保持數據的完整性,出現錯誤時將回退數據庫操作。最終根據執行結果逐層反饋至Struts控制器中由控制器分配權限至Web表現層將操作結果呈現。 圖10 錄入員頁面 圖11 添加賽事頁面 (2)登錄注冊功能 登錄注冊部分是系統中對于維護系統安全性比較重要的部分,為了保證系統的安全性以及數據不被惡意破壞,在注冊頁面(圖14)不對用戶開放管理員和錄入員的注冊功能只提供運動員和觀眾的賬號注冊。 通過JavaScript的驗證表單中兩次密碼是否一致,如果不一致則阻止表單提交。為了保證用戶賬號的唯一性。在用戶進行注冊操作時先查詢數據庫中是否存在同名用戶,如果存在則提示用戶名重復,建議用戶修改用戶名后重新注冊。 圖12 MVC模型 圖13 登錄注冊頁面 用戶在登錄部分進行登錄操作時,系統通過用戶名查找用戶信息與用戶輸入的信息進行比對,全部一致時,根據用戶類型的不同跳轉到相應頁面。 (3)查詢功能 查詢功能是運動會管理系統方便廣大用戶的一個功能。通過查詢功能用戶可以查詢到目前的所有賽事信息和成績。方便用戶了解運動會的舉辦情況及比賽結果。查詢功能分為兩部分,查詢賽事(圖14)和查詢成績(圖15)。所有用戶都可以使用這兩個功能。 查詢賽事和查詢成績均可以通過比賽類型和比賽項目進行篩選方便用戶快速找到想要查詢的信息。 圖14 查詢賽事頁面 圖15 查詢成績頁面 本系統基于SSH框架整合和MVC架構模式開發運動會管理系統,通過Struts2框架將業務邏輯與顯示頁面分離。服務端只需通過Tomcat發布程序,即可在任意客戶端通過瀏覽器訪問本系統,不僅有效的提高了系統的開發效率,使得系統具有高性能、可擴展性、重用性以及高安全性的特點,而且使得運動會管理系統擁有更廣的適用性。 [1]楊曉娟.普通高校田徑運動會管理系統的開發[J].微計算機應用,2000(6):65-65. [2]余銀山胡正華.基于Struts2框架的Web應用開發研究[J].電腦知識與技術,2009(16):136-137. [3]汪宇棟.基于web技術的百大集團辦公信息系統的設計與實現[D].電子科技大學,2012. [4]張立超.基于Java的IoC容器的設計與實現[D].吉林大學,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,FENG Si-ling,WANG Zhan-yu 1007-1423(2017)25-0067-06 10.3969/j.issn.1007-1423.2017.25.017 海南省自然基金項目(No.20156226)、海南大學科研啟動基金項目(No.kyqd1533) 李路(1995-),內蒙古烏蘭察布人,本科,從事領域為軟件系統開發研究 馮思玲(1973-),女,河南新鄉人,副教授,博士,從事領域為智能算法研究,Email:fengsiling2008@163.com 王湛宇(1995-),男,山西長治人,碩士研究生,研究方向為軟件工程方向 2017-05-27 2017-08-10







4 結語
(College of Information Science&Technology,Hainan University,Haikou 570228)