APP下载

基于Java EE学科竞赛管理系统的设计与实现

2018-11-01彭杨丽徐家喜陈培培

电脑知识与技术 2018年19期
关键词:学科竞赛管理系统

彭杨丽 徐家喜 陈培培

摘要:随着高校教育教学改革的深入与学生创新意识、实践动手能力的不断提高,高校学科竞赛的规模越来越大,致使学科竞赛信息的管理越来越烦冗。针对低效率、工作量大的传统人工管理模式,提出了基于Java EE的学科竞赛管理系统。根据院校实际业务需求,利用了Hibernate和struts2技术设计并实现了基于Java EE的学科竞赛管理系统,在竞赛信息采集、统计、管理以及发布等环节上实现了信息化、规范化和网络化,较大程度上提高了管理效率,对于高校学科竞赛管理具有重要意义。

关键词:学科竞赛;管理系统;Java EE

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)19-0093-03

Abstract: With the deepening of education reform in colleges and universities and the continuous improvement of students' innovative awareness and practical ability, the scale of academic competitions in universities is getting larger and larger, which makes the management of discipline competition information more and more cumbersome. For the traditional manual management mode with low efficiency and large workload, the discipline competition management system based on Java EE was proposed. According to the actual business requirements of colleges and universities, the Hibernate and struts2 technology was used to design and implement a discipline management system based on Java EE. It achieved informatization, standardization, and networking in competition information collection, statistics, management, and release. To a large extent, the management efficiency is improved, which is of great significance for the discipline competition management in colleges and universities.

Key words: discipline competition; management system; Java EE

1 引言

高校学科竞赛是增强学生动手实践能力和提高学生创新意识的重要体现与有效途径,也是高校培养高质量高素质人才的标志之一,有效促进良好学风的形成,为学生就业奠定基础。一方面,各高校越来越重视学生综合素质的培养,学科竞赛作为一种广普及、深受益的教学教育改革方式应运而生,这种群众性科技活动不仅能与高效课堂紧密结合,还能有效考查学生解决实际问题的能力;一方面,由于高校学科竞赛涉及专业广泛、参赛人数众多和赛程赛制区别较大等特点,导致高校在组织开展和信息监控的过程中面临许多管理方面的困难,低效率、难监控、易出错、难共享的传统人工管理模式已无法满足高校日益增长的学科竞赛管理需求。

基于此,本文提出了通过Hibernate和struts2等Java EE技术设计并实现的学科竞赛管理系统,致力于学科竞赛管理工作规范化、人性化、流程化和网络化的实现,提高学科竞赛活动的组织效率,规范并简化学科竞赛过程的管理,保障学科竞赛的公平、公正与公开。

2 系统设计

2.1 系统需求分析

学科竞赛管理系统的设计与开发,是为了解决传统人工管理模式在学科竞赛组织开展与过程管理过程中所造成的困难,因此主要需要对学科竞赛进行宣传,定期发布大学生学科竞赛相关举办信息与活动实时动态;需要对竞赛成果进行展示,及时对各学科竞赛所取成果进行展示和宣传;需要对竞赛项目信息进行管理,统一收录竞赛项目相关的所有过程材料,避免材料档案的缺失;还需要对系统账号进行管理等。

基于以上对学科竞赛管理系统需求的分析,可确定系统的需求为:

1) 競赛信息的管理。对学科竞赛相关的举办信息与活动动态进行实时展示,包括学科竞赛的动态新闻以及优秀成果的展示,普通用户和学生都可以使用该功能;

2) 竞赛项目的管理。根据不同的竞赛项目将对应的竞赛过程材料进行收录与统计分析,学生可以通过系统提交竞赛的项目作品,教师可以进行相应信息的浏览与编辑;

3) 竞赛系统的后台管理。该功能主要面向特定权限的管理人员,例如教务处或管理教师,可以在系统内进行常规用户账号管理功能。下图1为采用UML统一建模语言绘制的学科竞赛管理系统的需求分析用例图。

2.2 系统功能设计

根据学科竞赛系统的需求分析,可确定系统的三大主要功能模块:竞赛信息管理、竞赛项目管理以及系统后台管理。其中:

竞赛信息管理功能使用户及时获取竞赛相关的举办信息与过程动态新闻,公布竞赛优秀成果以示鼓励,大力提高学科竞赛的宣传效应;竞赛项目管理功能体现于不同的权限身份,学生身份可以进行相关竞赛的报名、查看已报名竞赛信息、上传竞赛作品以及个人信息的设置,而教师身份则可以对竞赛报名学生进行管理并跟踪监控竞赛的过程信息,还可以对以往竞赛进行数据统计并导出数据报表;后台管理功能主要是对系统用户账号以及系统数据字典信息的管理。下图2为学科竞赛管理系统的系统功能结构图。

2.3 数据库设计

系统采用Mysql数据库,主要涉及的基础数据表如下:

1) Administrator表(管理员信息表):记录管理员信息,包含管理员用户名、权限和用户创建时间;

2) Teacher表(教师信息表):记录教师信息,包含教师姓名、院系、电话、用户名等基本信息;

3) Student表(学生信息表):记录学生信息,包括学号、姓名、密码、年龄、性别、电话、邮箱、身份证、所属院系、专业以及推荐信息等内容;

4) Competition表(竞赛信息表):记录竞赛的信息,包含开始和截止时间、竞赛名称、举办规模、负责老师、举办单位、竞赛内容、竞赛链接、发布时间、发布单位等信息;

5) Subcompetition表(竞赛项目表):记录竞赛项目信息,包含竞赛名称、参与学生、指导教师、获奖等级和日期、院校、项目申报书、获奖名称、证明材料、作品材料等;

6) News表(竞赛新闻表):记录新闻模块的信息,包含新闻标题、内容、发布者、发布日期等;

7) Notice表(系统公告表):记录公告模块的信息,包含公告内容、发布者、发布日期等;

以上是学科竞赛系统的基础数据表的主要内容,还有部分业务辅助表不再赘述。

3 系统实现

3.1 关键技术

本系统的开发工具为Eclipse,数据库采用MySQL关系型数据库管理系统,系统以此作为数据库及数据表的设计与实现。后台采用基于Java EE的Struts2+hibernate框架,该框架的系统分为表现层、控制层和业务逻辑层,并能搭建结构清晰、可复用性好、维护方便的Web应用系统。其中使用Struts2作为系统的整体基础架构,负责MVC的分离,在模型部分控制业务跳转,利用Hibernate框架对持久层提供支持。

系统前端页面采用JSP技术,其中部分纯静态页面使用HTML5,CSS3和JavaScript构建。在实现开发时引入JQuery库,该库能优化HTML文档操作、事件处理、动画设计和Ajax交互。在前端页面重构时引用了Bootstrap框架,Bootstrap提供了大量常用的组件库,经过个性化定制后能很好地为系统实现提供技术支持,提高前端开发效率。

3.2 系统关键功能模块实现

1) 竞赛信息管理模块

竞赛信息管理模块主要包含公告管理、新闻管理、竞赛信息管理以及成果管理这四部分功能。其中公告管理主要实现了对高校学科竞赛系统相关通知公告的管理工作。教师可以对通知公告进行编辑,而普通用户只能对最近前10条公告信息进行浏览。该部分功能让高校师生及时了解最新公告,实现了信息的实时性共享。

新闻管理主要实现了对高校学科竞赛相关新闻动态的管理。所有用户都具有对新闻的浏览和查询的权限,但只有教师具备编辑学科竞赛动态新闻的权限。该功能提供了良好的信息窗口,让全体师生方便、快捷地了解到最新资讯,促进学科竞赛的组织开展与校园浓厚学术氛围的形成。其中利用hibernate查询所有新闻信息列表的关键代码如下:

List newsList = new ArrayList();

try {

Session session = HibernateUtils.getSession();

session.beginTransaction(); //session开启Transaction的操作

Query query = session.createQuery("from News"); //利用hibernate进行全查询

newsList = query.list(); //将所有查询结果保存至newsList

session.getTransaction().commit(); //与数据库交互,提交操作结果

} catch (Exception e) {

e.printStackTrace();

session.getTransaction().rollback(); //若捕捉到异常则进行事务回滚

} finally {

HibernateUtils.closeSession(session);

}

竞赛信息管理部分是对学科竞赛相关信息的管理,在教师编辑好学科竞赛相关信息进行发布后,所有用户都可以实时获取最新的競赛信息,为提高学生参与学科竞赛的积极性提供了保障。

成果管理部分主要是对历年竞赛成果展示的管理。所有用户都可以对竞赛成果进行浏览和查询,而教师还拥有编辑竞赛成果和导出报表的权限。

2) 项目信息管理模块

竞赛项目信息管理模块主要包含学生报名、项目信息的浏览查询、项目信息的收录编辑和项目信息的统计分析与报表导出功能,是对竞赛项目过程信息的管理。在该阶段的操作流程图如下图3所示。

在学科竞赛举办之前负责教师将相关信息录入系统并进行发布,而后根据相关竞赛安排组织开展竞赛活动。此时,全校师生都可以通过该系统了解到最新的竞赛信息,有意愿的学生可以通过登录系统进行在线报名。在规定的报名时间截止后,开始进行竞赛项目信息的收录其中报名时项目信息的申报录入界面如下图4所示。

根据需求用面向对象的分析方法提出模型,将其实现为Java对象后再编写DAO(Data Access Objects)接口。通过Hibernate实现DAO接口并以此进行Java类与数据库之间的转换和访问操作,然后以struts配置文件方式管理从视图层到控制器的映射。以下将以竞赛项目信息部分为模板具体剖析从功能到技术的融合实现,其中编写DAO接口的关键代码如下:

public interface SubCompetitionDao {

public boolean subCompetitionsave(Competition competition,Subcompetition subcompetition);

public List querysubCompetitionByComp(Competition competition);

public Subcompetition findbySubCompetitionId(Subcompetition subcomp);

public boolean deleteSubcompetition(Subcompetition subcomp);

public boolean modifySubcompetition(Subcompetition subcomp);

}

在表現层调用DAO层方法访问数据库,对数据库进行CRUD的操作被封装在DAO层。使用Hibernate技术作为DAO层访问数据库的中间件,并达到数据持久化效果,通过对象操作来操作数据库,这样可以使得操作更为方便快捷,其关键代码如下:

List subcompList = null;

try {

Session session = HibernateUtils.getSession();

Transaction tx = session.beginTransaction();

Query query = session.createQuery("from Subcompetition subcomp where subcomp.stuId1=?")

.setString(0, subcompetition.getStuId1()); //HQL(Hibernate Query Language)

subcompList = query.list();

if (subcompList.isEmpty()) {

subcompetition.setCompetition(competition);

session.save(subcompetition); //项目信息录入

tx.commit();

}

} catch (Exception e) {

e.printStackTrace();

if (tx != null) tx.rollback();

}finally{

HibernateUtils.closeSession(session);

}

4 结束语

从与课堂理论知识的紧密结合,到实际应用场景中解决实际问题,学科竞赛管理系统无不促进了校园良好校风与浓厚学术氛围的形成。本系统通过Hibernate和struts2等Java EE技术,设计了竞赛信息管理、竞赛项目管理等功能模块,实现了竞赛信息共享、竞赛数据信息的统计分析等功能,建立了一套灵活高效、方便快捷的学科竞赛管理系统。由于系统的设计与使用都是基于本校师生当前阶段的实际需求,在涉及资料审核流程和权限细分等方面目前只保留了接口,后期还需完善,但也因此能具有针对性的满足当前实际业务需求,实现软件系统的定制化需求。

参考文献:

[1] 高红岩.Struts应用开发指南[M].北京:科学出版社,2007:3-4.

[2] 郑阿奇.J2EE应用实践教程[M].北京:电子工业出版社,2009:23.

[3] 郝世选.基于Web的高校学生成绩管理系统的分析与设计[J].科技广场,2009(7):159-160.

[4] 王添财.基于Java EE的在线考试系统的设计与实现[D].广州:华南理工大学,2014.

[5] 于涛.基于JavaEE的信息管理系统研究与设计实现[D].大连:华东师范大学,2010.

[6] 刘世平.基于JavaEE的教务管理信息系统的设计与实现[D].沈阳:东北大学,2013.

[7] 罗玲玲.高校学科竞赛信息管理系统的研究与分析[D].昆明:云南大学,2015.

猜你喜欢

学科竞赛管理系统
基于James的院内邮件管理系统的实现
基于LED联动显示的违停管理系统
海盾压载水管理系统
浅谈独立院校大学生电子设计竞赛的组织与实践
“学研赛”并重的计算机类双创型人才培养模式探索
基于RFID的仓储管理系统实现