简介
本文基于Spring+SpringMVC+Mybatis实现一个简单的学生成绩管理系统,实现三层架构。它在上一JavaWeb版本基础上使用了SSM框架,优化了相关功能,使用分页模型对所有学生信息进行显示。
完整代码见github
任务
相关工作
- MySQL+java: 实现学生成绩管理系统(1.0版本)
- Mybatis 基于注解方式实现学生成绩管理系统(完整代码)
- 整合Spring+Mybatis 学生成绩管理系统(完整代码)
- JavaWeb+MySQL实现学生成绩管理系统(1.0版本完整代码)
- Spring MVC 拦截器判断用户是否登录
本项目基于以上项目进行改进。主要改进内容有:
- 使用Spring+SpringMVC+Mybatis框架实现,代替原生Servlet处理请求转发;
- 使用SpringMVC拦截器判断用户是否登录,在注册页面使用验证码;
- 使用SpringMVC的ControllerAdvice 实现全局异常处理;
- 使用Spring注解式事务管理;
- 使用分页模型显示所有学生信息,在主页基础上实现增加、删除、修改、统计功能,在前端页面上增加更多交互功能和提示。
更新日志(已经在github上更新)
- 21/4/23: 实现Spring注解式事务管理,进行测试。
- 21/4/28: 优化了SpringMVC拦截器的功能 ,对静态资源文件和登录/注册之外所有请求路径进行拦截;修复了查询结果页面导航图标点击没反应的问题。
项目结构
这是一个maven工程。
└─main
├─java
│ └─indi
│ └─huishi
│ ├─controller 控制器
│ ├─dao 持久层,和数据库交互
│ │ └─impl
│ ├─handler 处理异常
│ ├─interceptor拦截器判断登录状态
│ ├─pojo 实体类 Student User
│ ├─service 业务层
│ │ └─impl 实现类
│ ├─test 测试
│ │ └─basic
│ └─utils
├─resources 配置文件
│ └─indi
│ └─huishi
│ └─dao
└─webapp
├─META-INF
├─pages
│ ├─common 页面通用部分
│ ├─error 错误页面
│ ├─menu 主菜单:学生信息处理相关所有页面
│ ├─test
│ ├─useless
│ └─user 登录和注册
├─static
│ ├─css 样式
│ ├─img 图片
│ └─script jquery
└─WEB-INF
├─classes
│ └─indi
│ └─huishi
│ ├─controller
│ ├─dao
│ ├─handler
│ ├─interceptor
│ ├─pojo
│ ├─service
│ │ └─impl
│ ├─test
│ │ └─basic
│ └─utils
└─lib
数据库
使用MySQL实现,和上一版本的区别:学生表的主键和学号字段分离。主键将不再面向用户出现。
USE student_score_ssm;
CREATE TABLE student_score(
id INT PRIMARY KEY AUTO_INCREMENT,
NO VARCHAR(10) UNIQUE NOT NULL,
NAME VARCHAR(20) NOT NULL,
score FLOAT(20),
class_name INT
);
CREATE TABLE USER(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20) UNIQUE,
PASSWORD VARCHAR(20) NOT NULL,
email VARCHAR(20)
);
结果页面
主页
查询
查询异常