基于SpringBoot的学生宿舍管理系统的设计与实现
2021-01-14蒋晟陈科
蒋晟 陈科
摘 要:近年来,随着高等教育的快速发展,大学生的人数日益增加,然而部分高校仍以人工记录的方式进行管理。针对这种传统管理方式,为进一步优化宿舍的管理效率,通过使用Springboot架构模式与EasyUI前台框架相结合,设计出了一款学生宿舍管理系统。该系统实现了学生的入住寝室与交换寝室管理、寝室卫生与日常的评级管理、宿舍的报修管理等功能,降低了管理宿舍的难度。
关键词:Springboot;Mybatis;数据库设计;宿舍管理系统
中图分类号:TP311 文献标识码:A 文章编号:2096-4706(2021)12-0006-04
Abstract: In recent years, with the rapid development of higher education, the number of college students is increasing day by day. However, some colleges still manage them by means of manual recording. Aiming at this traditional management method, in order to further optimize the management efficiency of the dormitory, a student dormitory management system is designed by combined using the Springboot architecture mode and the EasyUI foreground framework. The system realizes the functions of students' checking in dormitory and exchanging dormitory management, dormitory hygiene and daily rating management, dormitory repair management and so on, and reduces the difficulty of the dormitory management.
Keywords: Springboot; Mybatis; database design; dormitory management system
0 引 言
大學宿舍是学生放松休息的地方,也是入校时每个学生都会去的地方,对宿舍进行有效的管理,可以减少资源的浪费,也可以使学生进校后的寝室调整需求能够迅速得到解决,减少同学以及宿舍管理人员的压力[1]。但多年的人工现场登记方式通常使用纸质形式,如果需要查找信息,则十分耗时耗力,并且高校人数众多,数据更新非常频繁,很难快速进行操作,所以这种实体资料不利于进行高效管理。此外,学生如果遇到宿舍里灯管、门锁等发生故障,需要自行到相应地点进行报修,效率很低。学生宿舍管理系统不仅可以有效地解决这些问题,而且可以推动宿舍管理向便利化、信息化方向发展。
1 关键技术介绍
1.1 SpringBoot框架
传统的Spring框架在开始搭建及开发过程中都会依赖大量的配置,使得开发效率低下,经常会出现各种错误,既耗费了开发人员的精力,浪费了时间,还十分繁琐。但是SpringBoot是一个效率极高的框架,不仅能够减少人工依赖的配置问题,它还能全部通过注解的形式进行使用,通过Java应用程序执行。因此,它能让编程人员集中精神于业务的逻辑进行开发,而无需过多关注XML配置,大大提高了开发、部署效率[2]。
1.2 Mybatis框架
MyBatis是Java中很常用的Object Relational Mapping框架,可以使用注解或者通过XML去配置与映射信息,并且在系统的开发过程中,不需要耗费大量的时间去对数据加载驱动、创建连接等繁杂的过程进行处理,只需要集中处理SQL语句。可以严格控制SQL执行性能,灵活度很高。也能轻松通过对SQL的优化提高接口的性能,适用于需要频繁优化的项目使用[3]。
1.3 JQueryEasyUI简介
EasyUI是一个基于JQuery的框架,可以帮助开发人员轻松创建功能丰富的界面,并且无需编写复杂的Javascript,节省了网页开发的时间和规模,虽然操作简单但功能强大[4]。
1.4 MySQL简介
MySQL,是一个关系型的数据库管理系统,它也是目前最常用、最常见的数据库之一,为了提高运行速度和灵活性,MySQL可以将数据存储在不同的表内,而不是将数据集中存储在一张表中。MySQL中所使用的SQL语言是访问数据库最常用的标准化语言[5]。
2 系统分析与设计
2.1 系统分析
本系统中可以分为三个身份登录,分别是:管理员、学生和宿舍管理员,每个身份角色登录所执行的功能都是不同的。本系统的功能模块如图1所示。
2.1.1 管理员端的功能模块
管理员包含所有模块的功能,具体为以下模块。
学生入住管理模块:
(1)入住管理:学生宿舍的分配。
(2)退寝管理:即删除退学、休学、毕业的学生。
(3)宿舍调整:调整申请换寝的学生信息。
(4)学生查询:提供学生的名字、学生编号、宿舍编号等信息的查询。
寝室信息管理模块:
(1)宿舍管理:对宿舍号和床位进行一个增删改查的操作。
(2)楼栋管理:更改新建或已拆卸楼栋的信息。
宿舍报修管理模块:为学生提供宿舍维修申请,并根据处理情况更新相应的操作。
宿舍评级管理模块:在宿舍管理人员对宿舍打过分之后,进行一个评级与排名的操作。
晚归人员管理模块:对晚于归寝限定时间的學生信息录入到数据库。
权限管理模块:对用户的账户密码以及个人信息进行添加、删除、查询以及修改操作。
2.1.2 宿管员端的功能模块
宿管员具有部分模块中的部分权限,如:
学生入住管理模块:学生查询——查询学生个人姓名、学号、宿舍号等信息。
寝室信息模块:宿舍管理——查询寝室里的学生的信息,也能查询到对应床位学生的信息。
宿舍报修管理模块:能够对申请报修学生的寝室号、学生信息以及学生所发的评论进行查看,在查看信息之后,进行核对操作,学生能够看到发布的报修信息是否审核成功,最后在完成维修后对该报修信息进行一个回复与删除操作。
宿舍评级管理模块:对每个学生宿舍的卫生、安全、查寝情况进行评分。
晚归人员管理模块:查询晚于限定返寝时间的学生信息。
权限管理模块:修改密码和信息。
2.1.3 学生端的功能模块
学生具有部分模块中的部分权限,如:
学生入住管理模块:
(1)学生查询:查询名字、学生编号、寝室号等信息。
(2)宿舍调整:提交自己需要更换寝室的申请。
宿舍报修管理模块:提交需要报修的申请和意见,修改和删除报修信息,查看宿舍管理员的审核状态。
权限管理模块:修改自己的密码以及信息。
2.2 系统主要设计
2.2.1 数据库设计
在设计数据库之前,充分认识每一个实体的属性和实体与实体之间的关系是非常重要且必要的,画出E-R图也会提高我们的工作效率,节省思考时间。系统的实体关系如图2所示。
根据上面的实体关系图,可以设计出多张表格,并且每张表格都存储着所对应的具体信息,如表1、表2所示。
2.2.2 后台功能设计
登录功能:用户输出账号密码进入,在此过程中将会提交form表单并处理post请求,通过type来判断用户登录的角色,通过存储在库内的用户数据会与输入的账号密码进行一个对比,如果校验无误则进入到相应的前端界面,如果不一致,则返回到前端并在页面上返回出相应的信息给用户,以下是功能的实现。
@PostMapping("/login")
@ResponseBody
public AjaxResultsubmitlogin(String username, String password, String code, String type,
HttpSessionsession){
AjaxResultajaxResult = new AjaxResult();
if(StringUtils.isEmpty(username)){
ajaxResult.setSuccess(false);
ajaxResult.setMessage("请填写用户名");
return ajaxResult;
}
if(StringUtils.isEmpty(password)){
ajaxResult.setSuccess(false);
ajaxResult.setMessage("请填写密码");
return ajaxResult;
}
//数据库校验
switch (type){
case "1":{ //管理员
Admin admin = new Admin();
admin.setPassword(password);
admin.setUsername(username);
Admin ad = adminService.findByAdmin(admin);
if(StringUtils.isEmpty(ad)){
ajaxResult.setSuccess(false);
ajaxResult.setMessage("用户名或密码错误");
return ajaxResult;
}
ajaxResult.setSuccess(true);
session.setAttribute(Const.ADMIN,ad);
session.setAttribute(Const.USERTYPE,"1");
break;
}
增删改查功能:此功能主要通过Mybatis来实现。一般项目的响应过程是用户向浏览器发起请求,然后浏览器将请求发送到控制器层所对应的方法进行处理,然后控制器层将会调用服务层的方法进行处理,服务层调用Dao层对数据执行相应的数据库操作,然后从同一路径返回到浏览器。使用Mybatis可以将SQL语句从代码中分离出来,并将其存储在XML配置文件中,以便于维护和管理,没有必要在Java代码中找到这些语句[6]。以下显示了部分查询和添加功能代码:
<insert id="addStudent" parameterType="Student">
insert into t_student(student_number,student_name, password,sex,mobile,qq,room_number) values(#{student_number},#{student_name},#{password},#{sex},#{mobile},#{qq},#{room_number}) </insert>
Select *from t_student
<where><if test ="student_name!=null"> and student_name LIKE concat ("%",#{ student_name},"%")</if>
<if test="room_number!=null"> and room_number LIKE concat("%",#{room_id},"%") </if>
<if test="student_number!=null"> and id = #{student_number} </if>
</where>
寝室报修功能:学生在发现宿舍物品或其他问题时,可以提交原因给宿舍管理员。以下为相应代码,报修功能如图3所示:
@PostMapping("/addComment")
@ResponseBody
public AjaxResultaddComment(Comment comment){
AjaxResultajaxResult = new AjaxResult();
try {
int count = commentService.Comment(comment);
if(count > 0){
ajaxResult.setSuccess(true);
ajaxResult.setMessage("添加成功");
}else{
ajaxResult.setSuccess(false);
ajaxResult.setMessage("添加失败");
}
} catch (Exception e) {
e.printStackTrace();
ajaxResult.setSuccess(false);
ajaxResult.setMessage("系统异常,请重试");
}
return ajaxResult;
}
2.2.3 前端功能设计
分页功能:因为高校学生人数众多,所以必须要有一个分页功能,分页处理就是通过点击按钮进行跳转到一下页,也可以修改每页显示信息的条数。通过Easyui,我们可以快速地完成编写操作。实现功能的具体代码为:
前端显示:分页的按钮图如图4所示,界面图如图5所示:
var p = $('#dataList').datagrid('getPager');
$(p).pagination({
pageSize: 10,//每页显示的记录条数
pageList: [10,20,50,100],//可以设置每页记录条数的列表
beforePageText: '第',//在页数文本框前显示
afterPageText: '页共 {pages} 页',
displayMsg: '当前显示 {from} - {to} 条记录共 {total} 条记录',
});
3 结 論
本文基于SpringBoot、Mybatis、EasyUI、MySQL等技术,实现了该系统的功能,且每个角色都能使用相对应的功能。在系统的开发过程中,Springboot和EasyUI这两个框架给开发提供了巨大的便利,但是因为本人能力有限,此系统的结构比较单一,功能不够完美,后期将会添加辅导员与二级学院管理员等角色进而丰富该系统的结构,另外此系统的界面设计不够精细、美观,这也为进一步完善系统提供了一个思路与方向。
参考文献:
[1] 李政.互联网时代高校学生宿舍管理思考 [J].科技经济导刊,2020,28(34):208-209.
[2] 张峰.应用SpringBoot改变web应用开发模式 [J].科技创新与应用,2017(23):193-194.
[3] 孙浩.基于SpringMVC及MyBatis框架的在线教育平台的设计与实现 [D].沈阳:沈阳师范大学,2019.
[4] 申永芳.基于jQuery框架的Web前端开发的研究 [J].信息通信,2019,32(10):105-107.
[5] 练振兴.MySQL读写分离的技术原理 [J].福建电脑,2019,35(8):49-51.
[6] 周杰.基于Spring MVC的教务管理系统 [J].电子技术与软件工程,2020(4):203-207.
作者简介:蒋晟(2000—),男,汉族,四川德阳人,本科在读,研究方向:软件工程;陈科(1981—),男,汉族,四川眉山人,副教授,工学博士,研究方向:计算机应用技术,软件体系架构。