基于Eclipse实现的Java学生宿舍管理系统

业余杂谈 herman 317浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:codedq,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:codedq,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领

前段时间五一放假,有网友出钱 2000,让我帮忙做一个 Java 学生宿舍管理系统。其实我前面已经分享了一个基于 SSM 实现的学生宿舍管理系统,可这位网友还未学过 SSM 框架,因此我又改了一个基于 Servlet + MySQL 实现的学生宿舍管理系统,现在他已经顺利答辩通过,我分享一下这套源码系统。

本系统使用到的技术有:mysql,tomcat,eclipse 或 myeclipse,servlet,c3p0 等。整体非常简单,适合做毕业设计,大作业等程序设计。整个项目的主界面截图如下:

Servlet实现的学生宿舍管理系统

本项目一种有 3 种角色。分别是:

  • 超级管理员:超级管理员是权限最大的角色,拥有系统所有的权限。
  • 宿舍管理员:权限,学生管理、宿舍管理、考勤管理、修改密码。注意:宿舍管理员所管理的这几个模块,都是超级管理员给他指定权限范围,他才能操作,比如:admin被分配了管理1号楼和2号楼,那么1、2号楼的宿舍他可以管理,添加的学生也只能安排在这两个楼里面,考勤也只能操作属于这两个楼的。
  • 学生角色:学生是权限最小的角色,仅有修改密码、考勤管理权限(仅仅查询)。

下面介绍几张主要的表结构:

CREATE TABLE `user` (
  `id` int(11) NOT NULL auto_increment COMMENT '主键',
  `name` varchar(20) not NULL COMMENT '名字',
  `password` varchar(20) not NULL COMMENT '密码',
  `no` varchar(20) default NULL COMMENT '账号-学生一般用学号',
  `dorm_no` varchar(20) default NULL COMMENT '宿舍编号',
  `build_id` int(11) default NULL COMMENT '宿舍楼id',
  `sex` varchar(20) default NULL COMMENT '性别',
  `phone` varchar(20) default NULL COMMENT '电话',
  `role_id` int(11) default NULL COMMENT '角色 0超级管理员,1管理员,2学生',
  `creator` int(11) default NULL COMMENT '创建人id',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

上面的用户表一共 10 个字段。下面是宿舍楼表,一共 4 个字段。

CREATE TABLE `build` (
  `id` int(11) NOT NULL auto_increment COMMENT '主键',
  `name` varchar(20) NOT NULL COMMENT '名字',
  `remark` varchar(50) default NULL COMMENT '备注',
  `isValid` varchar(4) default 'Y' COMMENT '是否有效,Y有效,其他无效',
  PRIMARY KEY  (`id`)
)  ENGINE=InnoDB DEFAULT CHARSET=utf8;

接下来是宿舍表,一共 5 个字段。

CREATE TABLE `dorm` (
  `id` int(11) NOT NULL auto_increment COMMENT '主键',
  `name` varchar(20) NOT NULL COMMENT '名字',
  `remark` varchar(50) default NULL COMMENT '备注',
  `build_id` int(11) default NULL COMMENT '宿舍楼id',
  `max_num` int(11) default 0 COMMENT '最大人数',
  PRIMARY KEY  (`id`)
)  ENGINE=InnoDB DEFAULT CHARSET=utf8;

再接下来是宿舍楼与管理员关系表(用来指定 宿舍管理员所拥有的宿舍楼权限)。一共是 3 个字段。

//宿舍楼与管理员关系表
CREATE TABLE `manage_build_rel` (
  `id` int(11) NOT NULL auto_increment COMMENT '主键',
  `user_id` int(11) default NULL COMMENT '管理员id',
  `build_id` int(11) default NULL COMMENT '宿舍楼id',
  PRIMARY KEY  (`id`)
)  ENGINE=InnoDB DEFAULT CHARSET=utf8;

然后是考勤表,一共是 5 个字段。

CREATE TABLE `record` (
 `id` int(11) NOT NULL auto_increment COMMENT '主键',
  `student_id` int(11) default NULL COMMENT '学生id',
  `date` date default NULL COMMENT '考勤日期',
  `record_type` varchar(2) default '1' COMMENT '考勤类型',
  `remark` varchar(50) default NULL COMMENT '备注',
  PRIMARY KEY  (`id`)
)  ENGINE=InnoDB DEFAULT CHARSET=utf8;

最后是菜单表,一共是 7 个字段。

CREATE TABLE `menu` (
  `id` int(11) NOT NULL,
  `menuCode` varchar(8) default NULL COMMENT '菜单编码',
  `menuName` varchar(16) default NULL COMMENT '菜单名字',
  `menuLevel` varchar(2) default NULL COMMENT '菜单级别',
  `menuParentCode` varchar(8) default NULL COMMENT '菜单的父code',
  `menuClick` varchar(16) default NULL COMMENT '点击触发的函数',
  `menuRight` varchar(8) default NULL COMMENT '权限2表示学生,1表示管理员,0超级管理员,可以用逗号组合使用',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

最后插入菜单表和用户表所需初始配置的初始数据脚本(用户表只插入超级管理员的即可)。

INSERT INTO `menu` VALUES ('1', '001', '宿舍管理员管理', '1', null, 'adminManage', '0');
INSERT INTO `menu` VALUES ('2', '002', '学生管理', '1', null, 'studentManage', '0,1');
INSERT INTO `menu` VALUES ('3', '003', '宿舍楼管理', '1', null, 'buildManage', '0');
INSERT INTO `menu` VALUES ('4', '004', '宿舍管理', '1', null, 'dormManage', '0,1');
INSERT INTO `menu` VALUES ('5', '005', '考勤管理', '1', null, 'recordManage', '0,1,2');
INSERT INTO `menu` VALUES ('6', '006', '修改密码', '1', null, 'modPwd', '0,1,2');
INSERT INTO `user` VALUES ('1', '超级管理员业余草', '123456', 'sa', null, null, '1', '123445', '0', null);

先插入菜单,再插入超级管理员用户。这里密码没有加密,如有需要可以自己实现加密,或者加我微信:codedq,帮你实现!

接下来,我们简单介绍一下各个菜单的功能。

首先是宿舍管理员管理,只有超级管理员才有的权限,可以增加宿舍管理员,并且分配宿舍楼,让其对指定的宿舍楼有对应的操作权限,也可以修改、删除。

宿舍管理员管理

列表页面具有分页功能,下面是新增的页面截图。

新增宿舍管理员

再接下来就是学生管理页面了,超级管理员和宿舍管理员均可以操作,区别是超级管理操作所有,而宿舍管理员只能查询、维护自己所管理的宿舍楼里面的学生。

学生管理的增删改查
添加学生页面功能

再接下来是宿舍楼管理页面,超过管理员才有的权限。同样具有分页功能,列表页面都类似,只是查询数据表不同。

宿舍楼管理页面功能

添加,修改,删除的维护页面我就不截图了。下面看宿舍管理页面。超级管理员和宿舍管理员均可以操作,区别是超级管理操作所有,而宿舍管理员只能维护自己管理宿舍楼的房间。

宿舍管理维护页面截图

下面是考勤管理页面,3个角色都有权限,但学生只有查询权限,没有维护权限。

简单考勤管理系统页面

新增考勤的页面也很简单,就是多了一个日期选择框。

新增考勤

最后还有一个页面是修改密码的页面。

密码修改

具体的实现代码我就不贴了,太多了,我这里分享一个链接:https://pan.baidu.com/s/1Kq3DEjtxyWRUHjhOJeiSTQ 提取码:x7ba,如遇链接过期,请加我微信:codedq 免费补充!

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号1:xmtxtt(5000人已满),微信号2:xttblog(5000人已满),微信号3:codedq(超3800)。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » 基于Eclipse实现的Java学生宿舍管理系统