基于JavaWeb技术实现宿舍管理系统
技术介绍
系统采用三层架构设计开发,页面是JSP技术、jQuery和EasyUI框架,数据库是mysql,数据层访问使用MyBatis框架。
运行环境
JDK1.8
tomcat8.5
MySQL5.7
功能介绍
系统角色分为系统管理员、宿舍管理员、学生。系统的主要功能有:登录功能、学生注册功能、宿舍管理员管理功能、学生管理功能、宿舍楼管理功能、缺勤记录管理功能、修改密码、退出系统。登录、修改密码和退出系统是所有用户都具有的,除了这些系统管理员还具有宿舍管理员管理功能、学生管理功能、宿舍管理功能和缺勤记录管理功能;宿舍管理员还具有学生管理功能、缺勤记录管理功能;学生还具有学生注册功能和缺勤记录查询功能。
登录功能
用户输入账号、密码,勾选账号类型进行登录。
系统管理员模块
宿舍管理员管理功能
对宿舍管理员查询、增加、修改、删除和条件搜索。
学生管理
对学生信息进行查询、添加、修改、删除和条件搜索。
宿舍楼管理
对宿舍楼信息进行查询、添加、修改、删除和条件搜索。
缺勤记录管理
对缺勤记录进行查询、添加、修改、删除和条件搜索。
宿舍管理员模块
学生管理
对宿舍管理员所管理的那栋宿舍楼的学生信息进行查询、添加、修改、删除和条件搜索。
缺勤记录管理
对宿舍管理员所管理的那栋宿舍楼的学生的缺勤记录信息进行查询、添加、修改、删除和条件搜索。
学生模块
缺勤记录功能
查询自己的缺勤记录。
修改密码
用户输入旧密码、新密码和再次输入新密码,点击提交后,则修改密码成功,系统会清除登录信息,用户需重新登录。
退出系统
用户点击退出系统后系统会清除用户此次登录信息退出系统。
实现
数据库的准备
absent(缺勤记录信息表)
字段名 | 数据类型 | 是否主键 | null | 说明 |
---|---|---|---|---|
absent_id | int | 是 | 否 | 编号 |
stu_id | int | 否 | 否 | 学生表编号 |
remarks | text | 否 | 是 | 备注 |
date | varchar | 否 | 否 | 日期 |
dormitory(宿舍楼信息表)
字段名 | 数据类型 | 是否主键 | NULL | 说明 |
---|---|---|---|---|
dormitory_id | int | 是 | 否 | 编号 |
dormitory_name | varchar | 否 | 否 | 宿舍名 |
brief_introduction | text | 否 | 是 | 简介 |
houseparent(宿舍管理员表)
字段名 | 数据类型 | 是否主键 | NULL | 说明 |
---|---|---|---|---|
houseparent_id | int | 是 | 否 | 编号 |
name | varchar | 否 | 否 | 姓名 |
gender | char | 否 | 否 | 性别 |
phone | char | 否 | 否 | 电话 |
dormitory_id | int | 否 | 是 | 宿舍楼编号 |
user_id | int | 否 | 是 | 用户编号 |
student(学生信息表)
字段名 | 数据类型 | 是否主键 | NULL | 说明 |
---|---|---|---|---|
stu_id | int | 是 | 否 | 编号 |
student_id | char | 否 | 否 | 学号 |
gender | char | 否 | 否 | 性别 |
dormitory_id | int | 否 | 是 | 宿舍楼编号 |
phone | char | 否 | 否 | 电话 |
dorm_no | char | 否 | 否 | 寝室号 |
user_id | int | 否 | 是 | 用户编号 |
s_name | varchar | 否 | 否 | 姓名 |
USER(用户表)
字段名 | 数据类型 | 是否主键 | NULL | 说明 |
---|---|---|---|---|
user_id | int | 是 | 否 | 编号 |
user_name | varchar | 否 | 否 | 用户名 |
password | varchar | 否 | 否 | 密码 |
nature | char | 否 | 否 | 用户性质 |
数据库sql语句:
/*
SQLyog Enterprise v12.14 (64 bit)
MySQL - 5.7.38-log : Database - practical_training
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`practical_training` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `practical_training`;
/*Table structure for table `absent` */
DROP TABLE IF EXISTS `absent`;
CREATE TABLE `absent` (
`absent_id` int(11) NOT NULL AUTO_INCREMENT,
`stu_id` int(11) NOT NULL,
`remarks` text,
`date` varchar(10) NOT NULL,
PRIMARY KEY (`absent_id`),
KEY `stu_id` (`stu_id`),
CONSTRAINT `absent_ibfk_1` FOREIGN KEY (`stu_id`) REFERENCES `student` (`stu_id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
/*Data for the table `absent` */
insert into `absent`(`absent_id`,`stu_id`,`remarks`,`date`) values
(3,3,'','2022-03-05'),
(4,14,'','2022-03-14'),
(6,10,'','2022-03-03'),
(7,15,'','2022-05-11'),
(8,20,'','2022-05-10'),
(9,17,'','2022-05-07'),
(10,2,'','2022-06-16'),
(11,2,'','2022-06-24'),
(12,15,'宿舍管理员添加测试','2022-06-25'),
(13,22,'3点才回的','2022-06-18');
/*Table structure for table `dormitory` */
DROP TABLE IF EXISTS `dormitory`;
CREATE TABLE `dormitory` (
`dormitory_id` int(11) NOT NULL AUTO_INCREMENT,
`dormitory_name` varchar(10) NOT NULL,
`brief_introduction` text,
PRIMARY KEY (`dormitory_id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8;
/*Data for the table `dormitory` */
insert into `dormitory`(`dormitory_id`,`dormitory_name`,`brief_introduction`) values
(5,'3号楼','无了无'),
(7,'7号楼','这是女生宿舍'),
(8,'8号楼','空宿舍'),
(9,'9号楼','研究生宿舍'),
(10,'10号楼','教职工宿舍'),
(11,'11号楼','插入测试2'),
(12,'12号楼','插入测试3'),
(13,'15号楼','成功了'),
(15,'1号楼','有历史的一栋宿舍'),
(16,'2号楼','一直都是'),
(17,'17号楼',''),
(18,'19号楼','成功成功');
/*Table structure for table `houseparent` */
DROP TABLE IF EXISTS `houseparent`;
CREATE TABLE `houseparent` (
`houseparent_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(10) NOT NULL,
`gender` char(2) NOT NULL,
`phone` char(11) NOT NULL,
`dormitory_id` int(11) DEFAULT NULL,
`user_id` int(11) DEFAULT NULL,
PRIMARY KEY (`houseparent_id`),
KEY `dormitory_id` (`dormitory_id`),
KEY `user_id` (`user_id`),
CONSTRAINT `houseparent_ibfk_1` FOREIGN KEY (`dormitory_id`) REFERENCES `dormitory` (`dormitory_id`),
CONSTRAINT `houseparent_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;
/*Data for the table `houseparent` */
insert into `houseparent`(`houseparent_id`,`name`,`gender`,`phone`,`dormitory_id`,`user_id`) values
(2,'李凤','女','13724760961',5,4),
(4,'李四','男','12345678901',11,5),
(5,'杨琴','女','13558954912',13,6),
(6,'王五','男','13789546524',5,7),
(8,'郑雪','女','13456789542',15,9),
(9,'宋和','男','13456879521',9,8),
(10,'刘枫','男','13745687452',9,16),
(12,'王宝贵','男','13745892784',8,12),
(13,'冼彩','女','18569742563',10,10),
(15,'雷秦','男','13447746362',15,18);
/*Table structure for table `student` */
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`stu_id` int(11) NOT NULL AUTO_INCREMENT,
`student_id` char(4) NOT NULL,
`gender` char(2) NOT NULL,
`dormitory_id` int(11) DEFAULT NULL,
`phone` char(11) NOT NULL,
`dorm_no` char(6) DEFAULT NULL,
`user_id` int(11) DEFAULT NULL,
`s_name` varchar(20) NOT NULL,
PRIMARY KEY (`stu_id`,`student_id`),
KEY `dormitory_id` (`dormitory_id`),
KEY `user_id` (`user_id`),
CONSTRAINT `student_ibfk_1` FOREIGN KEY (`dormitory_id`) REFERENCES `dormitory` (`dormitory_id`),
CONSTRAINT `student_ibfk_3` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8;
/*Data for the table `student` */
insert into `student`(`stu_id`,`student_id`,`gender`,`dormitory_id`,`phone`,`dorm_no`,`user_id`,`s_name`) values
(2,'0002','男',5,'13724760692','3-211',42,'吴为'),
(3,'0003','女',5,'13414987965','3-101',19,'欧金凤'),
(4,'0004','男',16,'13516877895','2-120',20,'李四'),
(5,'0005','男',7,'13754896854','7-608',21,'杨过'),
(7,'1023','男',9,'18546975848','9-586',23,'张凡'),
(8,'0123','男',12,'17598648263','12-698',24,'宋江'),
(9,'2015','女',15,'16589759648','1-987',25,'孙二娘'),
(10,'1256','男',12,'16587944856','12-895',26,'曾小贤'),
(11,'3658','女',10,'13459876825','10-895',27,'叶小苹'),
(12,'4567','男',15,'15322468959','1-315',28,'陈江河'),
(14,'3698','女',8,'17894568745','8-897',29,'孙大圣'),
(15,'1358','男',5,'13597584684','3-456',30,'叶开'),
(16,'6598','女',13,'13789546958','15-895',31,'徐娘子'),
(17,'0269','男',7,'13548974864','7-990',33,'宋乐'),
(20,'2563','男',10,'13414987966','10-112',36,'张良'),
(21,'1987','女',9,'13487956485','9-226',40,'杨丽丽'),
(22,'8888','男',9,'13548785898','9-256',39,'梁柱'),
(23,'7456','女',7,'13789546859','7-498',38,'杨山伯'),
(24,'2202','女',7,'13548957689','7-856',41,'杨秀丽');
/*Table structure for table `user` */
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`user_name` varchar(20) NOT NULL,
`password` varchar(20) NOT NULL,
`nature` char(2) NOT NULL COMMENT '账号的性质,-1:系统管理员,0:宿舍管理员,1:学生',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=utf8;
/*Data for the table `user` */
insert into `user`(`user_id`,`user_name`,`password`,`nature`) values
(1,'admin','123456','-1'),
(2,'lwg','123','0'),
(3,'za','1234','1'),
(4,'sul','123','0'),
(5,'hu','1234','0'),
(6,'vg','456','0'),
(7,'io','9099','0'),
(8,'tgiet','546456','0'),
(9,'vbjkg','45648','0'),
(10,'fjggij','45678','0'),
(11,'ffgg','123456','0'),
(12,'afg','789','0'),
(13,'hiop','456','0'),
(14,'gif','123456','0'),
(15,'xb','456879','0'),
(16,'nj','789','0'),
(17,'zf','132','0'),
(18,'fft','456','0'),
(19,'zagi','123','1'),
(20,'opo','123','1'),
(21,'per','456','1'),
(22,'ritj','789','1'),
(23,'gigk','693','1'),
(24,'ggee','789','1'),
(25,'iotr','123','1'),
(26,'ytu','456','1'),
(27,'itreq','1234','1'),
(28,'fjg','123','1'),
(29,'fjeit','456','1'),
(30,'fffeer','456','1'),
(31,'fffeqqq','123','1'),
(32,'qqe','123','1'),
(33,'lfoeo','456','1'),
(34,'firir','123','1'),
(35,'ieoe','123','1'),
(36,'fefef','456','1'),
(37,'qee','123','1'),
(38,'ffeg','123','1'),
(39,'ree','123','1'),
(40,'fig','1345656','1'),
(41,'yly','123456','1'),
(42,'ylyl','123','1'),
(43,'lgl','123456','1'),
(44,'glg','123456','1'),
(45,'htu','123456','-1'),
(46,'kkkk','123','-1'),
(47,'op','123456','0');
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
,‘123’,‘1’),
(39,‘ree’,‘123’,‘1’),
(40,‘fig’,‘1345656’,‘1’),
(41,‘yly’,‘123456’,‘1’),
(42,‘ylyl’,‘123’,‘1’),
(43,‘lgl’,‘123456’,‘1’),
(44,‘glg’,‘123456’,‘1’),
(45,‘htu’,‘123456’,‘-1’),
(46,‘kkkk’,‘123’,‘-1’),
(47,‘op’,‘123456’,‘0’);
/*!40101 SET SQL_MODE=@OLD_SQL_MODE /;
/!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS /;
/!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS /;
/!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;