> 宿舍管理是高校管理的重要组成部分,一套优秀的管理系统不仅可以降低宿舍管理的难度,也能在一定程度上减少学校管理费用的支出,能是建设现代化高校管理体系的重要标志。

本篇文章将带你从运行环境搭建、系统设计、系统编码到整个系统的实现,对整个过程进行详细描述,特别适合作为程序员的进阶项目案列,同样也是高校学生毕业设计系统实现的不二之选!

1、系统架构模式

本宿舍管理系统采用B/S架构模式。

B/S架构的全称为Browser/Server,即浏览器/服务器结构。Browser指的是Web浏览器,与C/S架构相比,B/S模式极少数事务逻辑在前端实现,它的主要事务逻辑在服务器端实现。B/S架构的系统无须特别安装,只有Web浏览器即可。

B/S架构的分层:

与C/S架构只有两层不同的是,B/S架构有三层,分别为:

第一层表现层:主要完成用户和后台的交互及最终查询结果的输出功能。

第二层逻辑层:主要是利用服务器完成客户端的应用逻辑功能。

第三层数据层:主要是进行数据持久化存储。

2、技术选型

选择合适的技术,整个项目就已经成功了一半,经过对系统需求和系统自身特点的分析,加上现代B/S模式主流架构解决方案,对本系统技术选型如下:

数据表现层: Html+JavaScript+CSS+VUE

业务逻辑层 Java+Spring+SpringMVC

数据持久层: MySql+MyBatis

开发工具: Eclipse

3、用户分析

本系统主要应用于高校宿舍管理,使用人群如下:

系统管理员:管理整个系统的安全运行,各个功能使用。

宿舍管理员:管理自己负责的宿管和学生

学生:查看浏览信息,提交任务

4、功能分析

系统管理员:

添加、修改、删除公告信息

添加、修改、删除宿舍管理员信息

添加、修改、删除学生信息

宿舍楼管理及其宿舍管理员分配

学生寝室管理

发布考勤、打卡任务

查看、修改个人信息

宿舍管理员:

查看公告

查看、删除自己管理的学生

添加、修改、删除考勤记录

查看学生打卡记录

查看、修改个人信息

学生:

查看公告

查看考勤记录

完成打卡任务,查看打卡记录

查看、修改个人信息

5、数据库设计

分析系统需求,数据库应有以下几张表:

t_admin: 主要用于存储系统管理员数据

字段名称

类型

是否主键

说明adminId

int

管理员Id,唯一

userName

varchar

用户名

password

varchar

密码

name

varchar

真实名称

sex

varchar

性别

sex

varchar

电话

t_dormbuild: 存储宿舍楼信息

字段名称

类型

是否主键

说明dormBuildId

int

宿舍楼Id,唯一

dormBuildName

varchar

宿舍楼名称

dormBuildDetail

varchar

描述

t_dormmanager: 主要存储宿舍管理员信息

字段名称

类型

是否主键

说明dormManId

varchar

宿舍管理员Id,唯一

userName

varchar

用户名,用于登录系统

password

varchar

密码

dormBuildId

int

宿舍楼Id

dormBuildDetail

varchar

描述

name

varchar

真实姓名

sex

varchar

性别

tel

varchar

电话

t_notice: 用于存储公告信息

字段名称

类型

是否主键

说明noticeId

int

公告Id,唯一

noticePerson

varchar

公告发布人

date

date

公告发布日期

content

varchar

发布内容

t_punchclock: 用于存储打卡发布记录

字段名称

类型

是否主键

说明id

int

Id,唯一

theme

varchar

打卡主题

detail

varchar

打卡说明

date

varchar

发布日期

person

varchar

发布人

t_punchclockrecord: 用于存储打卡信息

字段名称

类型

是否主键

说明id

int

记录Id,唯一

punchClock_id

varchar

打卡Id

punchClock_date

date

发布日期

punchClock_theme

varchar

打卡主题

punchClock_detail

varchar

打卡说明

punchClock_person

varchar

发布人

name

varchar

学生姓名

dormName

varchar

寝室号

tel

varchar

学生电话

stuNum

varchar

学生学号

dormBuildId

int

宿舍楼

isRecord

tinyint

是否已经打卡

t_record: 用于存储考勤记录

字段名称

类型

是否主键

说明recordId

int

考勤Id,唯一

studentNumber

varchar

学生学号

dormBuildId

int

宿舍楼

dormName

varchar

寝室号

date

varchar

考勤日期

detail

varchar

详细说明

t_student: 学生表,用于存放学生信息

字段名称

类型

是否主键

说明studentId

int

学生Id,唯一

stuNum

varchar

学号

password

varchar

密码

name

varchar

姓名

dormBuildId

int

宿舍楼

dormName

varchar

寝室号

sex

varchar

性别

tel

varchar

电话

6、运行环境搭建

前面已经提到,本系统使用SSM框架,搭建过程较为繁琐,因此将此部分独立出来,作为一个专题。

7、项目工程结构

根据第六步搭建完系统运行环境后,工程结构目录如下图所示

对工程结构各个目录的解释:

com.cya.controller

controller包用于存放接收请求的类,充当前后端数据交互的“桥梁”

com.cya.service

service包是所有业务逻辑的接口

com.cya.service.impl

service.impl包用于存放service接口的所有实现类

com.cya.mapper

mapper包用于存放对数据库操纵的接口和对应的xml实现

com.cya.entity

entity包用于存放项目中用到的所有实体类,它与数据库中的表相对应

resources文件下存放SSM框架整合的必要配置文件

dorm是存放所有model层文件的父级文件夹,其中admin,dormManager、student三个子文件夹存放系统管理员、宿舍管理员、学生三个角色对应的HTML文件。

8、功能实现及展示

由于系统包含功能众多,在此无法一一列举,所以挑选几个代表做展示。

8.1 登录功能实现

在此界面用户可以选择不同的角色登录,输入每个角色对应的登录信息后,首先会判断输入信息的有效性,做出相应的响应或提示。登录功能具体的实现代码如下,此处仅展示controller层代码,如下:

package com.cya.controller;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

import javax.management.relation.Role;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpSession;

import org.apache.tomcat.util.digester.ArrayStack;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestBody;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import com.cya.entity.Login;

import com.cya.entity.Result;

import com.cya.service.ILoginService;

import com.cya.service.impl.LoginServiceImpl;

@Controller

@ResponseBody

public class LoginController {

@Autowired

private ILoginService loginServiceImpl;

@RequestMapping("login")

public List login(HttpServletRequest request, @RequestBody Login login) {

List list=loginServiceImpl.login(login);

if(list.size()==1) {

HttpSession session=request.getSession();

session.setAttribute(login.getRole(), list);

System.out.println("session="+session.getAttribute(login.getRole()));

}

return list;

}

@RequestMapping("getSession")

public List getSession(HttpServletRequest request,@RequestBody Login login){

System.out.println(login);

System.out.println(request.getSession().getAttribute(login.getRole()));

List list=new ArrayList<>();

list.add(request.getSession().getAttribute(login.getRole()));

return list;

}

@RequestMapping("exitSys")

public Result exitSys(HttpServletRequest request) {

String exit="";

try {

if(request.getParameter("exit")!=null) {

exit=request.getParameter("exit");

}

request.getSession().removeAttribute(exit);

return new Result(true, "注销成功");

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

return new Result(false, "注销失败");

}

}

}

8.2 发布公告功能实现

在系统管理员端,有发布公告的权限,系统管理员点击添加公告按钮,输入相关信息后进行有效性校验,校验成功及代表公告发布成功。

成功发布公告后,会出现在宿舍管理员端和学生端界面,效果图如下:

公告模块主要代码以mapper层实现为例:

select * from t_notice

date like concat("%",#{key},"%")

insert into t_notice(noticePerson,date,content) values(#{noticePerson},current_date,#{content})

select * from t_notice where noticeId=#{noticeId}

update t_notice set noticePerson=#{noticePerson},content=#{content} where noticeId=#{noticeId}

delete from t_notice where noticeId=#{noticeId}

8.3 考勤记录功能实现

宿舍管理员根据自己所管理楼,对住在管理范围内的学生进行考勤,并添加考勤记录,学生端也会显示考勤信息。

主要实现代码如下:

@RequestMapping("/getRecordMsg")

public PageResult getRecordMsg(HttpServletRequest request){

Integer pageNum=1;

Integer pageSize=20;

Integer dormBuildId=0;

String filter=request.getParameter("filter");

String key=request.getParameter("key");

if(request.getParameter("pageNum")!=null && request.getParameter("pageNum")!="") {

pageNum=Integer.parseInt(request.getParameter("pageNum"));

}

if(request.getParameter("pageSize")!=null && request.getParameter("pageSize")!="") {

pageSize=Integer.parseInt(request.getParameter("pageSize"));

}

if(request.getParameter("dormBuildId")!=null && request.getParameter("dormBuildId")!="") {

dormBuildId=Integer.parseInt(request.getParameter("dormBuildId"));

}

System.out.println("pageNum="+pageNum);

System.out.println("pageSize="+pageSize);

return dormManageServiceImpl.getRecordMsg(pageNum, pageSize, filter, key, dormBuildId);

}

@RequestMapping("getRecordById")

public Record getRecordById(Integer recordId) {

return dormManageServiceImpl.getRecordById(recordId);

}

@RequestMapping("updataRecordMsg")

public Result updataRecordMsg(@RequestBody Record record) {

try {

dormManageServiceImpl.updataRecordMsg(record);

return new Result(true, "更新成功");

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

return new Result(false, "更新失败");

}

}

@RequestMapping("addRecordMsg")

public Result addRecordMsg(@RequestBody Record record) {

try {

System.out.println(record);

dormManageServiceImpl.addRecordMsg(record);

return new Result(true, "添加成功");

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

return new Result(false, "添加失败");

}

}

@RequestMapping("recordManagerDeleteById1")

public Result recordManagerDeleteById(HttpServletRequest request) {

Integer recordId=0;

if(request.getParameter("recordId")!=null && request.getParameter("recordId")!="") {

recordId=Integer.parseInt(request.getParameter("recordId"));

}

try {

dormManageServiceImpl.recordManagerDeleteById1(recordId);

return new Result(true, "删除成功");

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

return new Result(false, "删除失败");

}

}

10、相关说明

制作不易,记得点赞+收藏+转发

本人技术有限,若有错误欢迎指正

本系统和文章均属于【C you again】原创,欢迎个人博客、各大网站转载,但请注明转载地址

java宿舍管理系统登录界面_JavaWeb宿舍管理系统(附 演示、源码下载地址)相关推荐

  1. 修复登录接口社区论坛微信小程序源码下载-支持多种发帖模式超强社区

    这是一款社区论坛小程序源码 内涵强大的功能 支持多种多样的发帖模式 比如发图文,发语音,发涂鸦,发视频等 另外也可以设置为只能会员才可以发 另外还拥有礼物功能,可以对发帖人打赏,礼物等都可以自定义 另 ...

  2. 小程序源码:独家修复登录接口社区论坛微信小程序源码下载-支持多种发帖模式超强社区

    这是一款社区论坛小程序源码 内涵强大的功能 支持多种多样的发帖模式 比如发图文,发语音,发涂鸦,发视频等 另外也可以设置为只能会员才可以发 另外还拥有礼物功能,可以对发帖人打赏,礼物等都可以自定义 另 ...

  3. 编程语言用 Java 开发一个打飞机小游戏(附完整源码)

    编程语言用 Java 开发一个打飞机小游戏(附完整源码) 上图 写在前面 技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理贴出来给大家参考学习.java确实不适合写桌面应用,这里只是通过 ...

  4. java web宿舍管理系统源码_JavaWeb宿舍管理系统(附 演示、源码下载地址)

    > 宿舍管理是高校管理的重要组成部分,一套优秀的管理系统不仅可以降低宿舍管理的难度,也能在一定程度上减少学校管理费用的支出,能是建设现代化高校管理体系的重要标志. 本篇文章将带你从运行环境搭建. ...

  5. java实现三天免登陆_[内附完整源码和文档] 基于Java的人事档案管理系统

    摘 要 随着信息技术的迅速发展,信息资源数字化.网络化的进程进一步加快,档案管理的信息化建设已经成一个备受关注的热点.企业.学校.政府单位等都需要对档案进行信息化管理,来适应当今社会的信息化.网络化发 ...

  6. 基于JAVA的企业信息员工管理系统的设计与实现(附:源码 论文 sql文件)

    摘  要 随着电子信息的飞速发展,计算机已经融入到了生活的各个方面,越来越多的企业开始使用电子计算机来对企业进行管理,信息化的时代已经到来,各个企业无论大小都需要一个信息化的管理系统来对自己公司内部的 ...

  7. 基于JAVAWeb的农产品销售管理系统的设计与实现(附:源码 论文 sql文件)

    摘要 本文论述了基于JAVA.Web的农产品销售管理系统开发的目的及意义,目的是为了农产品资源的合理利用和物资的充分交流,有些地方富余而卖不出去,有些地方却吃不上.意义在于加快社会主义现代化建设的步伐 ...

  8. 基于springboot实现秋月堂茶室用品茶具管理系统的设计与实现【附项目源码+论文说明】

    摘要 随着信息技术的飞速发展和大数据时代的到来,人们的工作方法正在朝着信息化和数字化发展,互联网+已成为当前最受欢迎的话题. 为了取代过去大量.繁杂的人工操作,我们必须寻求一个由电子计算机.互联网和用 ...

  9. 基于springboot实现秋月堂茶室用品茶具管理系统的设计与实现【附项目源码+论文说明】分享

    摘要 随着信息技术的飞速发展和大数据时代的到来,人们的工作方法正在朝着信息化和数字化发展,互联网+已成为当前最受欢迎的话题. 为了取代过去大量.繁杂的人工操作,我们必须寻求一个由电子计算机.互联网和用 ...

最新文章

  1. SQL数据库学习之路(九)
  2. kill()函数 详解
  3. sublime交互执行python文件方法
  4. mysql bin.000013_"mysql-bin.0000*"占用空间问题及删除
  5. 设计一个程序实现两个任意长的整数的求和运算_深入 Python (7) Karatsuba 实现长整数乘法...
  6. oracle数据库删除百万级数据库,数据库SQL优化大总结之 百万级数据库优化方案...
  7. idea中开启Run Dashboard
  8. MySQL Server 安装失败
  9. 电灯泡实验应该怎么做_英文论文润色应该怎么做
  10. 【漫画】996对程序员的伤害,一看你就懂
  11. 教程:GIMP中改变画布大小
  12. java1.8 ojdbc14.jar_ojdbc14_g.jar与ojdbc14.jar区别
  13. html5 for vs2008插件,Chart 控件 for vs2008的安装
  14. 英语常用口语1000句
  15. 网页中视频在线播放脚本
  16. 快递电子面单接口php,快递电子面单
  17. MYSQL优化汇总——学习入口
  18. 第一届『Citric杯』NOIP提高组模拟赛 题解
  19. 【Python】python之subprocess模块详解
  20. 船舶爬虫出现过的问题

热门文章

  1. Linux操作系统相关知识——修改登录密码
  2. QTabWidget 标签页tabBar放左侧,文字方向改为水平
  3. 什么是先验概率?什么是后验概率?
  4. 拼接php图片路径,利用ThinkPHP5中的获取器,实现图片URL拼接
  5. Rust 构建 Wasm 模块
  6. 基于笔画特征的文字检测探讨
  7. cadence使用技巧(三)— 自定义virtuoso ciw菜单
  8. php整段代码注释,PHP标准注释|单行注释|多行注释|规则方式
  9. 打印机连接出现0x0000011b错误代码无法共享打印
  10. 享元模式(Flyweight Pattern)