学生管理系统后台服务
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
魏灿斌 632849de01 readme 14 hours ago
deploy/dev remove mysql and redis data dirs from repo 3 days ago
out/production 学生,成绩,班级,专业,教师,用户管理ok 4 days ago
yuxingshi-sms-common 抽取状态枚举,重构批量导入代码 3 days ago
yuxingshi-sms-server 抽取状态枚举,重构批量导入代码 3 days ago
.gitignore remove mysql and redis data dirs from repo 3 days ago
README.md readme 14 hours ago
pom.xml 学生,成绩,班级,专业,教师,用户管理ok 4 days ago

README.md

学生管理系统 (Student Management System)

基于Spring Boot 3.3.3 + Spring Security + MyBatis Plus的学生管理系统支持专业、班级、学生、教师的完整管理功能。

📋 项目概述

这是一个现代化的学生信息管理系统,提供了完整的教育机构信息化解决方案。系统采用微服务架构设计,模块化开发,支持批量导入导出、权限管理等企业级功能。

核心功能模块

  • 专业管理: 支持专业的增删改查,批量导入导出
  • 班级管理: 基于专业的班级管理,支持代码关联
  • 学生管理: 完整的学生信息管理,支持账号自动创建
  • 教师管理: 教师信息管理,支持账号自动创建
  • 用户权限: 基于角色的权限控制系统

🛠️ 技术栈

后端技术

  • Spring Boot 3.3.3 - 主框架
  • Spring Security - 安全认证与授权
  • MyBatis Plus 3.5.7 - 数据库ORM框架
  • MySQL 8.0 - 数据库
  • Redis - 登录缓存
  • EasyExcel 4.0.3 - Excel导入导出
  • JWT - Token认证
  • Lombok - 简化开发
  • HikariCP - 数据库连接池

开发工具

  • Maven 3.x - 项目构建
  • Java 17 - 开发语言
  • IntelliJ IDEA - IDE推荐

🏗️ 项目结构

yuxingshi-sms/
├── yuxingshi-sms-common/           # 公共模块
│   ├── yuxingshi-sms-core/        # 核心工具类
│   ├── yuxingshi-sms-redis/       # Redis配置
│   ├── yuxingshi-sms-mybatisplus/ # MyBatis Plus配置
│   ├── yuxingshi-sms-security/    # 安全模块
│   └── yuxingshi-sms-intercepter/ # 拦截器
├── yuxingshi-sms-server/          # 主服务模块
│   ├── src/main/java/
│   │   └── yuxingshi/sms/server/
│   │       ├── controller/         # 控制器层
│   │       ├── service/           # 服务层
│   │       ├── mapper/            # 数据访问层
│   │       └── domain/            # 实体和DTO
│   └── src/main/resources/
│       └── application.yaml       # 配置文件
└── deploy/                       # 部署配置
    └── dev/                      # 开发环境配置

🚀 快速开始

环境要求

  • JDK 17+
  • Maven 3.x
  • MySQL 8.0+
  • Redis 6.0+

本地开发部署

  1. 克隆项目
git clone <repository-url>
cd yuxingshi-ssm
  1. 数据库配置
# application.yaml
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/yxs_sms?useSSL=false&serverTimezone=GMT%2B8
    username: your_username
    password: your_password
  1. Redis配置
spring:
  data:
    redis:
      host: localhost
      port: 6379
      password: your_redis_password
  1. 编译和运行
# 编译项目
mvn clean compile

# 启动服务
mvn spring-boot:run -pl yuxingshi-sms-server
  1. 访问应用

📊 数据库设计

核心表结构

表名 说明 关键字段
user 用户表 id, username, password, role, status
major 专业表 id, major_code, major_name, description
classes 班级表 id, class_code, major_id, description
student 学生表 id, user_id, class_id, student_no, real_name
teacher 教师表 id, user_id, teacher_no, real_name, department

ER关系

  • 一个专业可以有多个班级
  • 一个班级可以有多个学生
  • 每个学生和教师都有对应的用户账号

🎯 核心功能

1. 批量导入功能

系统支持Excel批量导入具有以下特性

专业导入

  • 支持专业代码、专业名称、描述信息
  • 自动去重校验
  • 批量导入高性能处理

班级导入

  • 支持班级代码、专业代码关联
  • 自动通过专业代码查询专业ID
  • 数据完整性校验

学生导入

  • 支持学号、姓名、性别、手机号、班级代码
  • 自动创建用户账号(用户名=学号,密码=学号)
  • 批量处理User和Student表保证事务一致性
  • 自动关联班级信息

教师导入

  • 支持工号、姓名、部门、手机号
  • 自动创建用户账号(用户名=工号,密码=工号)
  • 批量处理User和Teacher表保证事务一致性

2. 权限管理

  • 学生角色: 查看个人信息
  • 教师角色: 教学相关功能
  • 管理员角色: 完整的管理功能

3. 状态管理

使用枚举统一管理所有实体的状态:

  • EntityStatus.ACTIVE (启用) = 1
  • EntityStatus.DISABLED (禁用) = 0

🔧 API接口

认证接口

POST /api/users/login      # 用户登录
GET  /api/users/detail     # 获取用户信息

专业管理

GET    /api/majors         # 查询专业列表
POST   /api/majors         # 创建专业
PUT    /api/majors/{id}    # 更新专业
DELETE /api/majors/{id}    # 删除专业
POST   /api/majors/import  # 批量导入专业

班级管理

GET    /api/classes        # 查询班级列表
POST   /api/classes        # 创建班级
PUT    /api/classes/{id}   # 更新班级
DELETE /api/classes/{id}   # 删除班级
POST   /api/classes/import # 批量导入班级

学生管理

GET    /api/students       # 查询学生列表
POST   /api/students       # 创建学生
PUT    /api/students/{id}  # 更新学生
DELETE /api/students/{id}  # 删除学生
POST   /api/students/import # 批量导入学生

教师管理

GET    /api/teachers       # 查询教师列表
POST   /api/teachers       # 创建教师
PUT    /api/teachers/{id}  # 更新教师
DELETE /api/teachers/{id}  # 删除教师
POST   /api/teachers/import # 批量导入教师

🔐 安全特性

  • JWT认证: 无状态Token认证
  • 密码加密: BCrypt加密存储
  • 权限控制: 基于角色的访问控制
  • 参数校验: Spring Validation框架
  • SQL注入防护: MyBatis Plus预编译

📈 性能优化

  • 批量操作: Excel导入使用批量插入提升性能
  • 数据库连接池: HikariCP连接池优化
  • 缓存策略: Redis缓存热点数据
  • 分页查询: MyBatis Plus分页插件
  • 索引优化: 关键字段建立索引

🐛 错误处理

系统完善的错误处理机制:

  1. 数据校验: 必填字段校验、格式校验
  2. 重复检查: Excel内重复、数据库重复检查
  3. 关联验证: 专业代码、班级代码存在性验证
  4. 事务回滚: 批量操作失败时完整回滚
  5. 友好提示: 详细的错误信息返回

🔧 配置说明

批量导入配置

app:
  import:
    # 批量插入大小,避免内存溢出
    major:
      batch-insert-size: 100
    class:
      batch-insert-size: 100
    student:
      batch-insert-size: 500
    teacher:
      batch-insert-size: 500

文件上传配置

spring:
  servlet:
    multipart:
      max-file-size: 10MB
      max-request-size: 20MB

📝 更新日志

v1.0.0 (2024-11-21)

  • 完整的CRUD功能
  • 🚀 Excel批量导入导出
  • 🔐 JWT权限认证
  • 📊 多条件分页查询
  • 🎯 批量操作事务优化
  • 🏷️ 状态管理枚举化

注意: 这是一个演示项目,实际生产环境使用前请进行充分测试。