1、必要的项目分析和说明
1.1 项目背景
传统高校人工选课模式存在明显弊端:课程信息展示零散、选课数据统计繁琐、管理员手动处理选课效率低下;学生无法在线浏览课程信息、查看授课教师与上课时间,选课过程透明度低。基于以上问题,开发一套基于 SpringBoot 的校园选课管理系统,实现学生在线浏览课程、搜索课程、选择课程,管理员对课程信息、学生账号进行管理,简化校园选课业务流程。
1.2 需求分析
(1)用户角色划分
1)学生角色:完成注册、登录;首页浏览全部课程,根据课程名称、教师名称模糊检索课程;查看课程封面、学分、授课教师、上课时间以及剩余可选名额;登录成功后进入学生页面进行选课操作。
2)管理员角色:使用管理员账号登录后台,对课程信息进行新增、修改、删除;查看所有学生选课情况,管理学生账号。
(2)功能需求
- 公共首页模块:登录、注册、课程列表分页展示、课程条件搜索;
- 学生模块:登录验证、查看课程详情、提交选课;
- 管理员模块:课程管理、查看选课数据。
(3)非功能需求
- 性能:页面响应时间小于 800ms,分页查询数据快速返回;
- 易用性:前端页面布局简洁美观,课程搭配封面图片,操作简单;
- 稳定性:数据库连接可靠,采用 Hikari 连接池,避免频繁创建数据库连接;
- 安全性:账号密码存储在 SQL Server 数据库,只有登录成功后才能进入对应权限页面。
1.3 数据库设计
使用 SQL Server2025 创建CourseDB数据库,一共设计 2 张数据表:
1.4 整体架构设计
项目采用三层架构:
- Controller(控制层):接收前端页面的 ajax 请求,接收页面参数,调用业务层方法;
- Service(业务层):编写业务逻辑,调用 Mapper 层完成数据库查询;
- Mapper(持久层):依托 MyBatis 编写 SQL 语句,和 SQL Server 数据库交互。
2、核心界面及相关技术简介
2.1 使用的技术栈
后端技术
- SpringBoot3.5:项目核心框架,自动配置,简化 SSM 整合,内置 Tomcat,省去繁琐配置;
- MyBatis:持久层框架,编写 XML 映射文件实现对 SQL Server 数据库的增删改查;
- HikariCP:SpringBoot 默认数据库连接池,高效管理数据库连接;
- mssql‑jdbc‑13.4:SQL Server2025 官方驱动,实现 Java 程序和数据库连接。
前端技术
- HTML + CSS:搭建页面结构,编写现代化页面样式,课程卡片圆角、阴影、悬浮上浮效果;
- JavaScript + jQuery:发送 Ajax 异步请求,向后端接口传参,动态渲染课程列表、分页数据;
- 静态资源:课程封面图片存放于 static/img 目录,页面加载时展示图片。
2.2 核心界面介绍
界面 1:首页 index.html(核心页面)
- 页面组成:顶部渐变蓝色导航栏、搜索区域、登录注册弹窗、课程卡片列表、分页按钮;
- 页面功能:
- 右上角登录按钮弹出登录弹窗,输入账号密码,前端把账号密码通过
$.get请求发送给/user/login接口;管理员账号doro登录后跳转 admin.html,普通学生账号跳转 student.html; - 注册弹窗调用
/user/register接口完成账号注册; - 搜索框输入课程名称或教师名称,调用
/course/page分页接口,后端根据关键字模糊查询课程; - 后端返回课程数据后,前端循环渲染每一张课程卡片,展示课程封面图片、课程名称、授课教师、学分、上课时间、选课人数;
- 分页组件实现上一页、下一页切换,每页固定展示 4 门课程;
- 页面特点:页面底色柔和,课程卡片 hover 时上浮并加深阴影,UI 简约美观;当后端服务未启动时前端弹出提示框,便于排查错误。
界面 2:学生页面 student.html
学生登录后进入此页面,查看可选课程,点击选课按钮提交选课请求,后端修改 course 表里面 selected 已选人数。
界面 3:管理员页面 admin.html
管理员登录之后进入后台页面,可以查看全部课程,新增课程、删除课程、修改课程信息,查看学生选课情况。
2.3 后端核心接口说明
- 课程分页接口:
GET /course/page,参数 keyword、page,实现条件分页查询课程数据,返回课程集合和总条数; - 用户登录接口:
GET /user/login,接收 username 和 password 参数,校验账号密码是否正确; - 用户注册接口:
GET /user/register,接收账号密码,把新用户信息插入 user 数据表。
2.4 项目运行流程
- 启动 SpringBoot 项目,Hikari 连接池连接 SQL Server2025 数据库;
- 浏览器访问
localhost:8080/index.html加载首页; - jQuery 发送 ajax 请求调用分页接口,MyBatis 执行 SQL 查询 course 表的数据;
- 后端将查询结果以 JSON 格式返回前端;
- JS 循环遍历数据渲染课程卡片与图片,完成页面展示。
3、系统介绍视频
屏幕录制 2026-07-09 123504