基于SSM的学生宿舍管理系统
目 录
当今校园内的学生宿舍,其数据量大,各种信息管理内容复杂,查询和管理学生信息和校园内的宿舍信息等工作由人工完成将是很累的,不仅浪费了许多人力物力资源,而且还很容易出现差错,有一个软件对学生宿舍管理不仅节省了人力物力,而且对各种信息的把握和操作也更加方便。本论文主要论述了如何基于SSM开发一个学生宿舍管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,面向对象编程思想进行项目开发。在引言中,作者将论述学生宿舍管理系统的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶段分析设计。
学生宿舍管理系统的主要使用者分为管理员、宿舍管理和学生用户,实现功能包括后台管理员:系统用户、宿舍楼层管理、宿舍信息管理、学生打卡管理、考勤打卡管理;宿舍管理:宿舍楼层管理、宿舍信息管理、学生打卡管理、考勤打卡管理等功能;学生用户:宿舍信息管理、学生打卡管理等功能。由于本网站的功能模块设计比较全面,所以使得整个学生宿舍管理系统信息管理的过程得以实现。
本学生宿舍管理系统是以SSM这一框架为基础,采用Java的编程语言,使用了MySQL这一数据库进行开发的,可以实现本学生宿舍管理系统管理的信息化,可以方便管理员进行更加方便快捷的管理。
关键词:Java;SSM;学生宿舍管理系统;MySQL
Abstract
The student dormitories on campus today have a large amount of data and complex information management content. It would be tiring to manually query and manage student information and dormitory information on campus. This not only wastes a lot of human and material resources, but also makes it easy to make mistakes. Having a software for managing student dormitories not only saves manpower and material resources, but also makes it more convenient to grasp and operate various information. This paper mainly discusses how to develop a student dormitory management system based on SSM. The system will strictly follow the software development process for each stage of work, and the object-oriented programming concept will be used for project development. In the introduction, the author will discuss the current background of the student dormitory management system and the purpose of system development. Subsequent chapters will strictly follow the software development process to analyze and design the system at each stage.
The main users of the student dormitory management system are divided into administrators, dormitory management, and student users. The implementation functions include backend administrators: system users, dormitory floor management, dormitory information management, student clock in management, and attendance clock in management; Dormitory management: functions such as dormitory floor management, dormitory information management, student clock in management, attendance clock in management, etc; Student users: functions such as dormitory information management and student check-in management. Due to the comprehensive design of the functional modules on this website, the information management process of the entire student dormitory management system can be realized.
This student dormitory management system is based on the SSM framework, developed using Java programming language and MySQL database. It can achieve information management of this student dormitory management system and facilitate administrators to manage more conveniently and quickly.
Keywords:Java; SSM; Student dormitory management system; MySQL
1 绪论
1.1 研究背景与研究意义
随着高校学生人数的不断增加以及宿舍楼层的扩建,宿舍管理面临着越来越大的压力。传统的宿舍管理方式面临着许多问题,如人工管理、信息不透明、效率低下等问题。因此,建立一种高效、智能化的学生宿舍管理系统,对于提高宿舍管理的效率和品质,提高学生生活质量,具有十分重要的意义。
学生宿舍管理系统可以实现宿舍管理全过程的信息化[1],包括宿舍楼层、宿舍信息、学生打卡等环节,能够实现对学生宿舍情况的全面监控管理,并及时反馈信息。通过系统中智能识别和分析数据,可以更加准确地预测和解决宿舍管理过程中的问题,提高宿舍管理的效率和质量,为学生提供更加安全、舒适的校园生活环境。同时,对学校相关管理部门的工作也将带来便利和高效。因此,建立一套高效、智能化的学生宿舍管理系统具有非常重要的研究意义[2]。
学生宿舍管理系统是指利用信息技术来管理大学或其他机构的宿舍设施和居住在其中的学生或员工的行为、活动和数据的系统[3]。它能够提高宿舍管理效率,提升居住环境质量,保障住宿学生或员工的安全和福利。目前随着信息化技术的发展和普及,学生宿舍管理系统在国内外的研究与应用逐渐增加。
在中国,许多大学和高等学府都提出了学生宿舍管理系统的需求,并开始尝试引入信息化技术来改进宿舍管理。一些研究性文章和论文开始关注学生宿舍管理系统的设计、应用和效果评估。许多大学和科研机构都在进行有关学生宿舍管理系统的实践探索和研究工作,积极探索如何利用智能化和物联网技术[4]来提升宿舍管理效率、加强安全保障、改善居住环境等方面的应用。
在国外,学生宿舍管理系统的研究相对更加成熟和广泛。许多高校和宿舍管理机构已经开始采用各种信息化技术来管理宿舍,实现宿舍出入管理、设备监控、学生挂靠管理、安全预警等功能。一些研究性机构也在进行学生宿舍管理系统的研究,探讨如何通过数据挖掘、人工智能等技术[5]来优化学生宿舍管理系统的效率和服务质量。
总体来看,学生宿舍管理系统的研究已经成为国内外高校和科研机构关注的焦点之一,未来随着信息技术的不断进步和宿舍管理需求的增长,学生宿舍管理系统的研究与应用将有更广阔的发展空间[6]。
本研究旨在设计并开发一套智能化的学生宿舍管理系统,实现对大学宿舍的全面管理,从而提高宿舍管理的效率和质量。
(1)系统架构设计:设计系统的整体架构,包括前端界面、后台数据库、中间业务逻辑等模块的搭建和关联。
(2)功能模块设计:确定系统的具体功能模块,包括系统用户、宿舍楼层管理、宿舍信息管理、学生打卡管理、考勤打卡管理等功能。
(3)技术选型:选择合适的技术工具,包括数据库、前端框架、后台语言等,以确保系统的稳定性和扩展性。
(4)系统测试:进行系统的功能测试、性能测试、兼容性测试等,保证系统的稳定运行和用户体验。
论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对网站需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分测试记录,论文主要架构如下:
第一章:绪论。主要介绍了选题的背景意义、国内外研究现状以及本文的主要研究内容和章节安排。
第二章:相关技术介绍。主要对本系统使用的相关技术和开发环境进行介绍。
第三章:系统需求分析和总体设计。主要从系统的用户、功能等方面进行需求分析;同时对系统框架、系统功能模块、数据库进行功能设计。
第四章:系统实现。主要介绍了系统框架搭建、系统界面的实现。
第五章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试。
第六章:结论。
2 相关开发技术介绍
2.1 Java编程语言
Java是一种面向对象的程序设计语言[7],类是Java程序的基本组成单元,类中又包含了属性和方法,在类中又可以创建无数个对象。类中包含的主要成员是字段和方法,字段是指一种数据变量,方法是指对字段进行操作的集合,包括给其他变量赋值、调用方法等。
2.2 SSM框架
SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架[8]。
1.8.1 Spring
Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂[9]。
Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地`new`一个对象,而是让Spring框架帮你来完成这一切。
1.8.2 SpringMVC
SpringMVC在项目中拦截用户请求,它的核心Servlet[10]即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。
1.8.3 mybatis
mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的[11]。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。
页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据[12]。
2.3 MySQL数据库
MySQL是一种广泛使用的开源关系型数据库管理系统[13]。它具有高性能、可靠性和可扩展性等优点,被广泛应用于Web应用程序和大型企业级系统中。MySQL的核心特性包括关系型数据库管理系统的基本概念、数据模型和类型、SQL语言支持、事务处理和并发控制,以及安全性和权限管理。其架构由连接管理器、查询解析器和优化器、存储引擎、日志系统和恢复机制等组件构成。MySQL在实际应用中的优势体现在高性能、可伸缩性、可靠性、灵活性和易用性等方面[14]。然而,MySQL也面临着一些局限性和挑战,如大规模数据处理的限制、复杂查询和性能优化、高并发和负载均衡,以及安全性和数据保护等方面。为了最大化MySQL的性能和效益,最佳实践和性能优化建议涉及数据库设计和规范化、索引设计和查询优化、缓存和分区技术,以及负载测试和容量规划等方面。总之,通过深入研究MySQL的描述,我们可以更好地理解其工作原理和适用场景,并为数据库开发人员和管理员提供有价值的参考[15]。
3 学生宿舍管理系统需求分析与设计
系统需求分析是系统开发的一个关键环节,它在系统的设计和实现上起到了一个承上启下的位置。系统需求分析是对所需要做的系统进行一个需求的挖掘,如果分析的准确可以精准的解决现实中碰到的问题。如果分析不到位会影响后期系统的实现。一个系统的优秀程度需求分析也是占据了非常大的比例,如果需求分析不到位,后面的系统设计要实现就是一个偏离导航的设计。
系统可行行分析是对系统对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及法律层面的可行性上进行分析,如果三个层面度通过,我们则认为系统是比较可行的。
3.1.1 技术可行性分析
学生宿舍管理系统设计与实现是一个基于Web的信息管理平台,我们在实现这个系统所采用的技术方案是基于Java语言,SSM框架,MySQL数据库,在大学的学习中这两门课程都已经学过,而且自己也用这些技术开发过小的项目,在平时的课程设计以及作业也经常用到Java和MySQL,在技术上实现自己的自主开发是可行的。
在开发学生宿舍管理系统并不需要投入太多,开发工具、服务器、数据库等,都可以通过网络搜索、下载、安装,只需要一台普通的计算机就可以完成操作,而且在系统功能规划上通过走访调查目前用户对学生宿舍管理系统的需求,了解它们对系统具体实现的功能需求,然后进行设计开发,不存在任何开销,因此系统的开发在经济方面是可行的。
操作方面主要考虑的是用户在使用以及管理人员在管理的时候,是否简单可行,没有任何计算机基础的用户能否使用,开发的学生宿舍管理系统在设计的时候秉承简单易学的理念,在用户进入系统后都会有固定的导航按钮,只要认字就可以操作完成,而且管理员在管理方面也只需简单的增删改查即可完成,因此在操作上也是可行的。
3.2.1 功能性分析
学生宿舍管理系统的主要功能模块分为学生用户模块、宿舍管理模块和管理员模块这三大部分。
学生用户通过管理员添加的账号密码登录系统,进入系统后可以对个人信息和登录密码进行修改管理。学生用户可以通过“宿舍信息管理”模块查看分配的宿舍信息,可以在此页面查看到楼层编号、宿舍类别、学生用户、学生姓名、学生性别、学生年龄、班级名称、宿舍房号等详细信息,可以在“宿舍信息管理”列表页面进行进出打卡信息提交;同时可以查询已添加的学生打卡信息。
图3-1就是学生用户角色的用例展示。
![](https://i-blog.csdnimg.cn/direct/24ab15f738cd4e58a034b46fcdc82cda.png)
图3-1 学生宿舍管理系统学生用户角色用例图
宿舍管理通过管理员添加的账号密码登录系统,进入系统后主要实现对个人信息和密码进行修改;宿管可以进行添加宿舍楼层信息并录入学生信息。可以通过楼层编号或学生姓名查询宿舍信息,查看学生的打卡信息。宿管自己也可以进行考勤打卡信息的添加。
图3-2就是宿舍管理角色的用例展示。
![](https://i-blog.csdnimg.cn/direct/c1d0032a11664a5a8b194114caeb0513.png)
图3-2 学生宿舍管理系统宿舍管理角色用例图
管理员进入系统后主要实现对学生用户、宿舍管理的账户信息添加管理;可以进行添加宿舍楼层信息并录入学生信息;可以在“宿舍信息管理”列表页面进行进出打卡信息提交,并且可以对学生打卡和宿舍管理考勤打卡信息进行管理。
图3-3就是管理员角色的用例展示。
![](https://i-blog.csdnimg.cn/direct/060c006a7136429ea4c05e6b8149b155.png)
图3-3 学生宿舍管理系统管理员角色用例图
3.2.2 非功能性分析
学生宿舍管理系统的非功能性需求比如学生宿舍管理系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:
表3-1学生宿舍管理系统非功能需求表
安全性 | 主要指学生宿舍管理系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指学生宿舍管理系统能够按照用户提交的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响学生宿舍管理系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着学生宿舍管理系统的页面展示内容进行操作,就可以了。 |
可维护性 | 学生宿舍管理系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
业务流程是用一些特定的符合和线条来进行演示用户在使用系统时的过程,在进行系统分析的时候,业务流程可以帮助开发人员更好的理解业务,发现错误,完善系统。
3.3.1数据增加流程
用户成功登入系统后就能够实现增加数据的操作,增加数据的编号是特定的,系统生成,用户不能随意填写,除了编号以外,其他增加信息用户自己填写,填写后的信息经过系统验证,验证合法通过就显示增加数据成功了,相反的话,就没有增加成功,图3-4显示的就是在增加数据时的流程。
![](https://i-blog.csdnimg.cn/direct/dc34b60efc2248b5b086cac7bd9450b2.png)
图3-4 数据增加流程图
3.3.2 数据修改流程
数据修改时的流程和上面介绍的数据增加时的流程差不多,如图3-5所示。
![](https://i-blog.csdnimg.cn/direct/f5897d60092c4426aa2bb4116ffc0e39.png)
图3-5 数据修改流程图
3.3.3 数据删除流程
如果系统里面存在一些没有用的数据的话,相关的管理人员还可以对这些数据进行删除,图3-6就是数据删除时的流程图。
![](https://i-blog.csdnimg.cn/direct/d651ed220747484997549abdad875c1e.png)
系统功能模块的设计就是把系统具体要实现哪些功能,功能如何划分做一个系统的架构,以模块图的方式展示出来,方便我们进行功能得罗列以及涉及。在系统的功能方面,项目分成了管理员+用户两个模块,每个模块登录进去对应相应的功能,其总体设计模块图如图4-1所示。
![](https://i-blog.csdnimg.cn/direct/2ad4a86758304e7c81f125002f6c28f2.png)
图4-1 学生宿舍管理系统功能模块图
下面是整个学生宿舍管理系统中主要的数据库表总E-R实体关系图。
![](https://i-blog.csdnimg.cn/direct/38b0bc0b59fe43629f4537d5db6a9930.png)
图4-2 学生宿舍管理系统总E-R关系图
4.2.2 数据库逻辑结构设计
通过上一小节中学生宿舍管理系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | announcement_message_id | int | 10 | 0 | N | Y | 公告消息ID | |
2 | announcement_title | varchar | 64 | 0 | Y | N | 公告标题 | |
3 | announcement_category | varchar | 64 | 0 | Y | N | 公告类别 | |
4 | release_time | datetime | 19 | 0 | Y | N | 发布时间 | |
5 | announcement_description | varchar | 64 | 0 | Y | N | 公告描述 | |
6 | announcement_content | text | 65535 | 0 | Y | N | 公告内容 | |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | attendance_clock_in_id | int | 10 | 0 | N | Y | 考勤打卡ID | |
2 | dormitory_management | int | 10 | 0 | Y | N | 0 | 宿舍管理 |
3 | management_name | varchar | 64 | 0 | Y | N | 管理姓名 | |
4 | check_in_time | datetime | 19 | 0 | Y | N | 打卡时间 | |
5 | check_in_remarks | varchar | 64 | 0 | Y | N | 打卡备注 | |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | dormitory_floors_id | int | 10 | 0 | N | Y | 宿舍楼层ID | |
2 | floor_number | varchar | 64 | 0 | N | N | 楼层编号 | |
3 | number_of_floors | int | 10 | 0 | Y | N | 0 | 楼层层数 |
4 | dormitory_category | varchar | 64 | 0 | Y | N | 宿舍类别 | |
5 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | dormitory_information_id | int | 10 | 0 | N | Y | 宿舍信息ID | |
2 | floor_number | varchar | 64 | 0 | Y | N | 楼层编号 | |
3 | dormitory_category | varchar | 64 | 0 | Y | N | 宿舍类别 | |
4 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
5 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
6 | student_gender | varchar | 64 | 0 | Y | N | 学生性别 | |
7 | student_age | varchar | 64 | 0 | Y | N | 学生年龄 | |
8 | class_name | varchar | 64 | 0 | Y | N | 班级名称 | |
9 | dormitory_room_number | varchar | 64 | 0 | Y | N | 宿舍房号 | |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | dormitory_management_id | int | 10 | 0 | N | Y | 宿舍管理ID | |
2 | management_name | varchar | 64 | 0 | Y | N | 管理姓名 | |
3 | managing_gender | varchar | 64 | 0 | Y | N | 管理性别 | |
4 | management_age | varchar | 64 | 0 | Y | N | 管理年龄 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | student_check_in_id | int | 10 | 0 | N | Y | 学生打卡ID | |
2 | floor_number | varchar | 64 | 0 | Y | N | 楼层编号 | |
3 | dormitory_category | varchar | 64 | 0 | Y | N | 宿舍类别 | |
4 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
5 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
6 | student_gender | varchar | 64 | 0 | Y | N | 学生性别 | |
7 | student_age | varchar | 64 | 0 | Y | N | 学生年龄 | |
8 | class_name | varchar | 64 | 0 | Y | N | 班级名称 | |
9 | dormitory_room_number | varchar | 64 | 0 | Y | N | 宿舍房号 | |
10 | clock_in_category | varchar | 64 | 0 | Y | N | 打卡类别 | |
11 | check_in_time | datetime | 19 | 0 | Y | N | 打卡时间 | |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | student_users_id | int | 10 | 0 | N | Y | 学生用户ID | |
2 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
3 | student_gender | varchar | 64 | 0 | Y | N | 学生性别 | |
4 | student_age | varchar | 64 | 0 | Y | N | 学生年龄 | |
5 | class_name | varchar | 64 | 0 | Y | N | 班级名称 | |
6 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 学生宿舍管理系统的技术实现
学生宿舍管理系统的详细设计与实现主要是根据前面的学生宿舍管理系统的需求分析和学生宿舍管理系统的总体设计来设计页面并实现业务逻辑。主要从学生宿舍管理系统技术实现和界面实现这两部分进行介绍。
5.1 用户登录模块的实现
主要由两部分组成,登录前的登录界面以及登录后的用户功能界面。登录界面,要求用户输入用户名和密码,当用户名和密码其中一个输入为空时,给出提示“用户名,密码不能为空”。获取用户名和密码后到数据库中查找,如果用户名存在,以及对应的密码正确,则登录成功,否则登录失败。登录失败后给出提示,并把焦点停在文本框中。登录成功后将该次会话的全局变量username设置为用户名。登录成功后进入用户的功能模块,主要有用户基本信息修改,以及学生打卡管理、宿舍信息管理、退宿信息管理、报修信息管理、费用信息管理和退出功能。退出功能是清除全局变量username的值,并跳回到首页。
登录流程图如下图所示。
![](https://i-blog.csdnimg.cn/direct/9deaddbf8e5541abbd7670ca0d0b96ed.png)
图5-1登录流程图
![](https://i-blog.csdnimg.cn/direct/c9ea522b943d4e17ac35e474d168614a.png)
图5-2用户登录界面图
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
QueryWrapper wrapper = new QueryWrapper<User>();
Map<String, String> map = new HashMap<>();
用户登录/注册成功之后可以修改自己的基本信息。修改页面的表单中每一个input的name值都要与实体类中的参数相匹配,在用户点击修改页面的时候,如果改后用户名与数据库里面重复了,页面会提示该用户名已经存在了,否则通过Id来查询用户,并将用户的信息修改为表单提交的数据。资料修改界面如下所示。
![](https://i-blog.csdnimg.cn/direct/6585aec84d6d4c63b92333fc83609125.png)
图5-3资料修改界面图
资料修改关键代码如下:
@PostMapping("/set")
@Transactional
public Map<String, Object> set(HttpServletRequest request) throws IOException {
service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
return success(1);
}
管理员对系统用户的管理,包括管理员、学生用户和宿舍管理用户,以及登录密码修改,在 yhzhgl.aspx.cs 实现管理员用户的管理,包括录入、删除、修改,修改密码通过 SESSION 获取用户名,然后输入新密码,提交到 mod.aspx.cs 中,使用 sql 命令更新密码添加用户后,用户也可以使用账号和密码登录系统。
用户管理界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/6c214baec4574003b6213512acabfbed.png)
图5-4系统用户管理界面图
添加用户信息关键代码如下:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
@Transactional
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
此页面的关键是编写宿舍楼层信息,包括楼层编号、楼层层数、宿舍类别等。单击提交按钮以完成信息的添加。如果未写入完整的宿舍楼层信息,例如,如果未写入楼层编号,系统将给出相应的错误提示,并且无法成功输入。数据以概念的形式以onsubmit =“return checkForm()”的形式写入以进行检查,checkForm()函数是一种用于写入数据的不同类型的校对方法,是不是为空也是经过form表单中的οnsubmit=”return checkForm()来检查。
管理员和宿舍管理用户点击左侧菜单“宿舍楼层管理”,页面跳转到宿舍楼层管理外观,调用后台查询所有宿舍楼层信息。并将信息密封到数据集合List,绑定到请求对象,然后页面跳转到相应的Java页面,显示出宿舍楼层信息,单击删除按钮完成宿舍楼层的删除。
宿舍楼层管理流程图如下图所示。
![](https://i-blog.csdnimg.cn/direct/c2d9c534818f43cfa0da7a21802ba800.png)
图5-5宿舍楼层管理流程图
宿舍楼层添加界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/63b4126a08a64c74b13c18aad2be4bb8.png)
图5-6宿舍楼层添加界面
根据需求,需要对学生打卡进行添加、删除或修改详情信息。删除或修改学生打卡时,系统根据学生打卡的状态判定为可删除状态下,才会给出删除和修改链接,点击删除链接按钮时,请求到达后台,还会先查询学生打卡状态再次做出判定能否删除。点击修改链接按钮时,会跳转到修改信息的页面,重新填写好数据后,数据提交到后台会对数据库中相应的记录做出修改。
添加学生打卡时,会给出数据填写的页面,该页面根据填写好的学生打卡编号同样会事先发送Ajax请求查询编号是否已存在,数据填写好之后提交到后台,会调用相关服务在数据库中插入记录。
学生打卡管理流程图如下图所示。
![](https://i-blog.csdnimg.cn/direct/c571bdaa2c51437895cbd03bce5de724.png)
图5-7学生打卡管理流程图
学生打卡添加界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/f8872afe5b284783b95646c019bb52e3.png)
图5-8学生打卡添加界面
6系统测试
6.1 测试目的
在这个产品被投入使用前,首先需要进行试用,这是重要的环节。考虑到某个部分的开发没有缺陷情况下,把各种模块拼接,也有一定概率就存在矛盾。这就好比每个人都很独特,但聚在一起就显得杂乱无章,需要保证有默契的配合。对于测试,要看它的各项内容是否契合的原则。若与最初定下的标准有一定程度上的出入,那么就需要做出一些调整,让最终的大方向朝着目标前进。
测试是为了发现在开发的程序中所存在的问题,测试这一工作是非常艰巨的,而又是非常困难的,这一部分在程序的设计中占有很大比例,可以说一个程序的开发工作量要是占据了百分至六十,那么剩下的百分之四十必然是测试这一部分,甚至更高。
6.2 测试用例
表6-1 用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
6.2.2创建数据测试
在系统中,创建功能也是基础功能之一,因此创建功能的测试很有代表性。在此章节主要列举在创建时各种情况下系统结果的测试。由于系统涉及创建功能操作过多,因此将多处统称创建功能。
创建数据用例如下表所示。
表6-2 创建数据测试用例
测试用例编号 | YL_05 | |
测试用例名称 | 系统使用者进行创建数据 | |
测试用例描述 | 使用者输入要创建的数据 | |
系统入口 | 浏览器 | |
步骤 | 预期结果 | 实际结果 |
输入完整并且格式正确的数据 | 提示“创建成功”,并显示所有数据 | 预期结果 |
核心位置数据但非必要位置不输入数据 | 提示“创建成功”,并显示所有数据 | 预期结果 |
核心数据位置不输入数据 | 提示“创建失败” | 预期结果 |
6.2.3修改数据测试
在系统中,修改功能是系统主要实现功能,因此修改功能的测试很有代表性。在此章节主要列举在修改时各种情况下系统结果的测试。由于系统涉及修改功能操作过多,因此将多处数据表记录修改和状态修改统称修改功能。
修改数据用例如下表所示。
表6-3 修改数据测试用例
测试用例编号 | YL_06 | |
测试用例名称 | 系统使用者进行修改数据 | |
测试用例描述 | 使用者对可修改的数据项进行修改 | |
系统入口 | 浏览器 | |
步骤 | 预期结果 | 实际结果 |
将现有数据修改成正确的数据 | 提示“修改成功”,并显示所有数据 | 预期结果 |
将现有数据修改成错误的数据 | 提示“修改失败” | 预期结果 |
6.2.4查询数据测试
在系统中,查询功能是使用系统使用最多也是最基础的功能,因此查询功能的测试很有代表性。在此章节主要列举在查询时各种情况下系统结果的测试。
查询数据用例如下表所示。
表6-4 查询数据测试用例
测试用例编号 | YL_05 | |
测试用例名称 | 系统使用者进行查询数据 | |
测试用例描述 | 全部查询以及输入关键词查询 | |
系统入口 | 浏览器 | |
步骤 | 预期结果 | 实际结果 |
界面自动查询全部 | 显示对应所有记录 | 预期结果 |
输入已存在且能匹配成功的关键字 | 显示所查询到的数据 | 预期结果 |
输入不存在的关键字 | 显示数据界面为空 | 预期结果 |
在本次测试的过程主要针对所有功能下的添加操作,修改操作和删除操作,并以真实数据一一进行相关功能项目的输入,最终能够保证每个项目涉及的功能都是能够正常运行,因此能够保证本次设计的,已实现的功能能够正常运行并且相关数据库的信息也同样保证正确。
本文描述了学生宿舍管理系统设计与实现的原理和开发过程,在开发本学生宿舍管理系统之前,首先通过网上查询现有的学生宿舍管理系统功能、线下通过问卷调查的方式,了解用户对宿舍管理方面的具体需求,对系统的开发背景以及推荐系统的研究现状进行研究,设计了本学生宿舍管理系统具体实现的功能;确定好功能后,第二步就是开发工具的选择,在设计本学生宿舍管理系统的时候,采用了现下比较流程的Java语言,采用SSM框架,数据的存储方面采用的是开源的MySQL数据库,接下来就是对系统需求的分析,在文中主要通过对幼学生宿舍管理系统进行可行性、性能、功能、用例四个方面进行分析,确定了本学生宿舍管理系统的具体功能,功能确定后就是对系统的设计以及,包括前后台、数据库等方面,最终完成系统的开发,对系统进行测试总结。
在开发本学生宿舍管理系统的过程中我成长了很多,学习到了很多书本上没有的知识,目前系统虽然已经完成,但是还有许多地方需要改进,比如界面布局方面,代码的编写方面,都可以进一步完善,由于自己专业知识的浅薄,系统做的并不是十分完美,以后我会不断进行学习,对系统进行完善,希望有机会能够投入到学校的使用当中,给同学们提供便利。
[1]孔令奇,祖丽胡玛尔·吐尼亚孜.高校辅导员加强学生宿舍管理服务工作对策研究[J].北京教育(德育),2023,(11):83-87.
[2]吉家苇,郭鸿飞.高校学生宿舍管理优化的思考[J].高校后勤研究,2023,(11):22-23.
[3]李鹏霞,李宛睿.高校学生宿舍智慧化管理系统的设计与实现[J].长江信息通信,2023,36(11):162-164+167.
[4]李月.辅导员视角下高校学生宿舍管理研究[J].成才,2023,(21):81-82.
[5]林晨.育人为本的高校学生宿舍管理模式研究[D].华东师范大学,2023.DOI:10.27149/d.cnki.ghdsu.2023.004914.
[6]陈志峰,母则闯,吕加宝.新时期思政教育与高校宿舍管理有效融合研究[J].佳木斯职业学院学报,2023,39(10):16-18.
[7]韩政.大学生宿舍管理突出问题与对策分析[J].国际公关,2023,(20):146-148.DOI:10.16645/j.cnki.cn11-5281/c.2023.20.023.
[8]李杨.疫情下高校学生宿舍网格化管理的探索与应用[J].辽宁高职学报,2023,25(10):96-100.
[9]吕慧敏,孙龙昊,李林.“党建+”视域下学校宿舍精细化管理模式探索[J].北京教育(德育),2023,(09):23-26.
[10]吴英伟,张子慧.高校学生宿舍创新管理的探索与思考[J].船舶职业教育,2023,11(05):75-77.DOI:10.16850/j.cnki.21-1590/g4.2023.05.022.
[11]顾政仁.学生宿舍管理中思政教育和行为规范引导策略[J].大学,2023,(27):145-148.
[12]宋伟.高职院校学生宿舍信息化管理研究[J].船舶职业教育,2023,11(04):67-69.DOI:10.16850/j.cnki.21-1590/g4.2023.04.021.
[13]张浩.SSM框架在Web应用开发中的设计与实现研究[J].电脑知识与技术,2023,19(08):52-54.DOI:10.14004/j.cnki.ckt.2023.0353.
[14]黄强.基于Web的高职院校学生宿舍管理系统设计与结构分析[J].无线互联科技,2022,19(20):78-80.
[15]R A M ,S K A ,C T P , et al.Challenges for Students in the Creation, Growth, and Management of an Academic, Student-run Asylum Clinic[J].Journal of Human Rights Practice,2022,13(2):456-470.
[16]郭静.基于SSM框架的高校新生预报到系统的设计与实现[J].电子技术与软件工程,2022,(02):232-235.
[17]阴菲菲.高校学生宿舍管理与服务现存问题的思考与分析[J].大众标准化,2021,(22):213-215.
[18]Kewei W ,Yong F .Daily Information Management System for Postgraduates to Check In and Out of the Dormitory Based on Mobile Edge Computing[J].Mobile Information Systems,2021,2021
[19]Material Cycles and Waste Management; Investigators from University of Tunku Abdul Rahman Target Material Cycles and Waste Management (Appraisal of Student's Awareness and Practices On Waste Management and Recycling In the Malaysian University's Student Hostel Area)[J].Ecology, Environment Conservation,2020,
[20]Bashir K J M ,Jun Z Y ,Yi J L , et al.Appraisal of student’s awareness and practices on waste management and recycling in the Malaysian University’s student hostel area[J].Journal of Material Cycles and Waste Management,2020,22(3):1-12.
这篇文章的完成经历了多个日日夜夜的努力,终于在今天得以完成。这篇文章的创作过程实为不易,但在老师和同学的辛勤帮助下顺利渡过。让我在设计过程中举步维艰时,非常感谢我的导师不耐其烦的帮助我解决问题,给予了我许多指导意见。也感谢所有为我授业解惑的老师!
另外,本文的完成也参考借鉴了许多国内外在SSM和Java技术上的著作,如果没有著作原作的辛勤付出和科研成果,我也很难完成本论文。感谢在本论文中关联到的学者们!也感谢Google等公司,感谢他们强大的搜索引擎,让我的资料查阅省事简单。
感谢之余也还有几句话要说,虽大学学习四年,怎奈何本人才疏学浅,本文的完成已为尽力,但文中不免有些不当和错误之处,诚挚真切的请求各位老师对本文的批评改正,感谢百忙之中费心审阅我论文的老师。
请关注点赞+私信博主,免费领取项目源码