李路,冯思玲,王湛宇
(海南大学信息科学技术学院,海口 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-104 结语
(College of Information Science&Technology,Hainan University,Haikou 570228)