springboot+Thymeleaf+mysql8+maven做的学生宿舍管理系统

18 阅读3分钟

项目简介

学生宿舍管理系统是一个基于Spring Boot开发的Web应用,用于管理学生宿舍相关信息,包括宿舍管理、学生管理、报修管理、反馈管理等功能。

技术栈

  • 后端框架: Spring Boot 2.7.18
  • 持久层: MyBatis 2.3.1
  • 数据库: MySQL 8.0+
  • 视图层: Thymeleaf 3.x
  • 验证码: Kaptcha 0.0.9
  • 密码加密: BCrypt (Spring Security)
  • 前端框架: Bootstrap 5

项目结构

studorm/
├── pom.xml                          # Maven配置文件
├── src/
│   ├── main/
│   │   ├── java/com/studorm/
│   │   │   ├── StudormApplication.java    # 启动类
│   │   │   ├── config/                    # 配置类
│   │   │   ├── controller/                # 控制器层
│   │   │   ├── service/                   # 服务层
│   │   │   ├── mapper/                    # Mapper接口
│   │   │   ├── entity/                    # 实体类
│   │   │   ├── dto/                       # 数据传输对象
│   │   │   ├── common/                    # 通用类
│   │   │   ├── util/                      # 工具类
│   │   │   └── interceptor/               # 拦截器
│   │   └── resources/
│   │       ├── application.yml            # 应用配置
│   │       ├── mapper/                     # MyBatis XML映射文件
│   │       ├── static/                     # 静态资源
│   │       └── templates/                  # Thymeleaf模板
│   └── test/                              # 测试代码
└── doc/                                  # 文档目录

环境要求

  • JDK 8+
  • Maven 3.6+
  • MySQL 8.0+
  • IDE (IntelliJ IDEA / Eclipse)

快速开始

1. 数据库准备

执行 doc/studorm_db.sql 脚本创建数据库和表结构:

mysql -u root -p < doc/studorm_db.sql

或者使用MySQL客户端工具执行SQL脚本。

2. 配置文件

修改 src/main/resources/application.yml 中的数据库连接信息:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/studorm_db?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false
    username: root
    password: root  # 修改为你的数据库密码

3. 运行项目

方式一:使用Maven命令

mvn spring-boot:run

方式二:使用IDE

直接运行 StudormApplication.java 的main方法。

4. 访问系统

注意:如果登录时提示"用户名或密码错误",请参考 doc/密码问题修复说明.md 进行修复。 系统已集成自动修复功能,重启应用后会自动检测并修复密码。

功能模块

已完成

  • ✅ 项目基础框架搭建
  • ✅ 用户认证模块(管理员登录、学生登录/注册)
  • ✅ 验证码功能
  • ✅ 密码加密(BCrypt)
  • ✅ 登录拦截器
  • ✅ 基础实体类(9个核心实体)
  • ✅ 所有Mapper接口和XML映射文件
  • ✅ 所有Service接口和实现类
  • ✅ 所有Controller控制器
  • ✅ 宿舍管理模块(CRUD操作)
  • ✅ 学生管理模块(登录、注册、分页查询)
  • ✅ 报修管理模块(学生提交、管理员处理)
  • ✅ 反馈管理模块(学生提交、管理员回复)
  • ✅ 换宿舍申请模块(学生申请、管理员审批)
  • ✅ 订水管理模块(学生订水、管理员处理,数量限制1-5桶)
  • ✅ 电费充值模块(学生/管理员充值,余额管理)
  • ✅ 操作日志模块(记录管理员操作)

待开发

  • ⏳ 前端页面(各模块的列表、新增、编辑页面)
  • ⏳ 文件上传模块(头像上传功能)
  • ⏳ 数据统计模块(报修统计、充值统计等)

开发说明

添加新模块步骤

  1. 创建实体类 (entity/)
  2. 创建Mapper接口 (mapper/)
  3. 创建Mapper XML (resources/mapper/)
  4. 创建Service接口 (service/)
  5. 创建Service实现 (service/impl/)
  6. 创建Controller (controller/)
  7. 创建前端页面 (resources/templates/)

代码规范

  • 类名使用大驼峰命名(PascalCase)
  • 方法名和变量名使用小驼峰命名(camelCase)
  • 数据库表名和字段名使用下划线命名(snake_case)
  • 统一使用Result类作为API响应格式
  • 统一使用PageResult类作为分页响应格式

注意事项

  1. 验证码: 验证码有效期为5分钟,验证后自动清除

  2. 密码加密: 所有密码使用BCrypt加密存储

  3. 文件上传: 头像上传限制为2MB,仅支持图片格式

  4. 订水限制: 单次订水数量限制为1-5桶

  5. 换宿舍申请: 必须填写目标宿舍号

管理员-报修管理.png

管理员-操作日志.png

管理员-登录.png

管理员-电费管理.png

管理员-订水管理.png

管理员-反馈管理.png

管理员-换宿舍申请管理.png

管理员-首页.png

管理员-宿舍编辑.png

管理员-宿舍列表.png

管理员-学生编辑.png

管理员-学生列表.png

学生-报修列表.png

学生-报修提交.png

学生-登录.png

学生-电费列表.png

学生-电费提交.png

学生-订水列表.png

学生-订水提交.png

学生-反馈列表.png

学生-反馈提交.png

学生-个人中心.png

学生-换宿舍申请列表.png

学生-换宿舍申请提交.png

学生-首页.png

学生-注册.png