学生宿舍管理系统
SSM+JSP+Bootstrap

yangyi 7c5c367805 readme hace 4 meses
doc d169171cb4 文档 hace 4 meses
sql f69838dfe3 学生宿舍管理系统 hace 4 meses
src f69838dfe3 学生宿舍管理系统 hace 4 meses
.gitignore f69838dfe3 学生宿舍管理系统 hace 4 meses
README.md 7c5c367805 readme hace 4 meses
pom.xml f69838dfe3 学生宿舍管理系统 hace 4 meses

README.md

宿舍管理系统 (Dormitory Management System)

基于 SSM(Spring + Spring MVC + MyBatis) 框架的高校宿舍管理系统,提供线上化的宿舍资源管理和学生自助服务。

项目背景

传统高校宿舍管理多依赖纸质表格或 Excel 记录,存在信息分散、更新滞后、学生体验差、管理效率低等问题。本系统旨在通过信息化手段解决上述痛点,实现宿舍管理的数字化和自动化。

技术栈

层级 技术 版本
语言 Java JDK 8
核心框架 Spring (IoC, AOP, TX) 5.3.31
Web MVC Spring MVC 5.3.31
ORM MyBatis 3.5.6
数据库 MySQL 8.0.25
连接池 Druid 1.2.8
分页 PageHelper 5.3.2
视图 JSP + JSTL + EL Servlet 4.0
前端 Bootstrap 4.3.1 + jQuery 3.3.1 CDN
构建工具 Maven 3.x
服务器 Apache Tomcat 9.x

系统架构

采用 SSM 三层架构 + MVC 设计模式:

表示层 (JSP + Bootstrap + jQuery)
      ↓ HTTP 请求 / 响应
控制层 (Spring MVC @Controller)
      ↓
服务层 (Service Interface + Impl + @Transactional)
      ↓
持久层 (MyBatis Mapper Interface + XML SQL)
      ↓
数据库 (MySQL)

请求经过 DispatcherServlet → 拦截器链(LoginInterceptor → AuthInterceptor)→ @Controller → Service → Mapper → 数据库。

功能模块

1. 认证与授权

  • 用户名/密码登录,MD5 密码加密
  • Session 会话管理
  • 双角色:管理员(role=0)和学生(role=1)
  • 未登录拦截 + 管理员权限拦截

2. 宿舍楼管理(管理员)

  • 宿舍楼的增删改查
  • 分页查询与条件过滤(名称、编号、性别类型)
  • 删除时校验是否存在关联房间

3. 房间管理(管理员)

  • 按楼栋管理房间,增删改查
  • 分页查询,按楼栋和楼层过滤
  • 删除时校验是否存在关联床位

4. 床位管理(管理员)

  • 按房间管理床位,增删改查
  • 分页查询,按楼栋和房间号过滤
  • 床位状态:空闲 / 已入住 / 维修
  • 删除时校验是否为占用状态

5. 用户管理(管理员)

  • 学生账户的增删改查
  • 分页查询,按姓名、性别、学号过滤
  • 头像上传功能
  • 删除时校验是否当前有住宿记录

6. 分配管理(管理员)

  • 查看所有住宿分配记录(关联用户、楼栋、房间、床位)
  • 手动分配学生到指定床位
  • 退宿操作(结宿日期 + 床位释放)

7. 学生自助服务(学生端)

  • 查看个人信息和当前住宿情况
  • 头像上传(验证图片类型,最大 2MB)
  • 三步选宿向导:选择楼栋 → 选择房间 → 选择床位
  • 按性别过滤可选床位
  • 事务保障:防止重复分配

数据库设计

表名 说明
user 用户表(管理员 + 学生)
dormitory_building 宿舍楼表
room 房间表
bed 床位表
assignment 分配记录表

预置数据:

用户名 密码 角色
admin admin123 管理员
zhangsan 123456 学生
lisi 123456 学生
wangwu 123456 学生

快速开始

环境要求

  • JDK 8+
  • Maven 3.x
  • MySQL 8.0
  • Apache Tomcat 9.x(或使用 tomcat7-maven-plugin)

安装步骤

  1. 克隆项目

    git clone <repository-url>
    cd dormitory_manage
    
  2. 初始化数据库

    mysql -u root -p < sql/init.sql
    
  3. 配置数据库连接

编辑 src/main/resources/jdbc.properties,修改数据库用户名和密码:

   jdbc.driver=com.mysql.cj.jdbc.Driver
   jdbc.url=jdbc:mysql://localhost:3306/dormitory_manage?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
   jdbc.username=root
   jdbc.password=root
  1. 启动项目

方式一:使用 Maven 插件

   mvn tomcat7:run

方式二:部署 WAR 包到 Tomcat

   mvn package
   # 将 target/dormitory_manage.war 部署到 Tomcat 的 webapps 目录
  1. 访问系统

打开浏览器访问 http://localhost:8080/

默认账号

  • 管理员:admin / admin123
  • 学生:zhangsan / 123456

项目结构

dormitory_manage/
├── doc/                          # 项目文档
│   └── work.md                   # 详细项目报告
├── sql/
│   └── init.sql                  # 数据库初始化脚本
├── src/
│   └── main/
│       ├── java/space/anyi/
│       │   ├── common/           # 公共工具类(Result, PageResult)
│       │   ├── controller/       # Controller 层
│       │   ├── entity/           # 实体类
│       │   ├── interceptor/      # 拦截器(登录 + 权限)
│       │   ├── mapper/           # MyBatis Mapper 接口
│       │   └── service/          # Service 层(接口 + 实现)
│       ├── resources/
│       │   ├── mapper/           # MyBatis XML 映射文件
│       │   ├── jdbc.properties   # 数据库配置
│       │   ├── logback.xml       # 日志配置
│       │   ├── mybatis-config.xml
│       │   ├── spring-context.xml
│       │   └── spring-mvc.xml
│       └── webapp/
│           ├── WEB-INF/
│           │   ├── web.xml
│           │   └── views/        # JSP 视图文件
│           │       ├── admin/    # 管理员页面
│           │       └── student/  # 学生页面
│           └── static/
│               └── uploads/      # 头像上传目录
└── pom.xml                       # Maven 构建配置