# 学生选课信息管理系统
> 该项目处于未完成阶段,仍在**持续更新中**
基于SSM的学生选课信息管理系统
## 项目简介
由 Java Spring + SpringMVC + Mybatis 结构编写的学生选课信息管理系统,项目运行在本地,前端由bootstrap完成
## 应用技术
- 工具:IntelliJ IDEA
- 环境:SDK11, tomcat8.5, mysql8.0
- 前端:JavaScript,jQuery,bootstrap4
- 后端:maven,SpringMVC,MyBatis,Ajax
## 项目目录
```
├─.idea
│ ├─codeStyles
│ ├─dataSources
│ │ └─42351afe-9f1f-41ef-adc4-21e1d5f53697
│ │ └─storage_v2
│ │ └─_src_
│ │ └─schema
│ └─inspectionProfiles
├─src
│ ├─main
│ │ ├─java
│ │ │ └─com
│ │ │ └─existot01 // 包名
│ │ │ ├─config // 配置目录
│ │ │ ├─controller // 控制器目录
│ │ │ ├─dao // 数据访问对象 Data Access Object
│ │ │ ├─domain //
│ │ │ └─service // 服务层
│ │ │ └─impl // 服务层实现
│ │ ├─resources
│ │ │ └─sql // sql文件
│ │ └─webapp // 前端网页资源
│ │ ├─assets
│ │ │ ├─css
│ │ │ │ └─vendor
│ │ │ ├─fonts
│ │ │ ├─images
│ │ │ │ ├─bg
│ │ │ │ ├─commingsoon
│ │ │ │ │ └─flakes
│ │ │ │ │ ├─depth1
│ │ │ │ │ ├─depth2
│ │ │ │ │ ├─depth3
│ │ │ │ │ ├─depth4
│ │ │ │ │ └─depth5
│ │ │ │ ├─projects
│ │ │ │ └─users
│ │ │ └─js
│ │ │ ├─admin
│ │ │ ├─apexcharts
│ │ │ │ └─samples
│ │ │ │ └─assets
│ │ │ ├─demo
│ │ │ ├─ui
│ │ │ └─vendor
│ │ ├─pages
│ │ │ └─admin
│ │ └─WEB-INF
│ └─test // 测试类
│ └─java
│ └─com
│ └─existot01
│ └─service
└─target
├─apache-tomcat-maven-plugin
├─classes
│ ├─com
│ │ └─existot01
│ │ ├─config
│ │ ├─controller
│ │ ├─dao
│ │ ├─domain
│ │ └─service
│ │ └─impl
│ └─sql
├─generated-sources
│ └─annotations
├─generated-test-sources
│ └─test-annotations
├─maven-status
│ └─maven-compiler-plugin
│ └─compile
│ └─default-compile
├─test-classes
│ └─com
│ └─existot01
│ └─service
└─tomcat
├─conf
├─logs
├─webapps
└─work
└─Tomcat
└─localhost
└─_
└─org
└─apache
└─jsp
```
## 功能
<img src="https://expicture.oss-cn-beijing.aliyuncs.com/img/202211081703174.png" alt="image-20221108152809252" style="zoom:80%;" />
## 部分界面演示
- 登录界面
<img src="https://expicture.oss-cn-beijing.aliyuncs.com/img/202211081703176.png" alt="image-20221108152959097" style="zoom:80%;" />
- 管理员主页
<img src="https://expicture.oss-cn-beijing.aliyuncs.com/img/202211081703177.png" alt="image-20221108160340922" style="zoom:67%;" />
- 添加学生
<img src="https://expicture.oss-cn-beijing.aliyuncs.com/img/202211081703178.png" alt="image-20221108160407590" style="zoom:80%;" />
> 更多页面请导入项目后浏览
## 技术细节
- web应用的三层结构
> * 表现层
>
> * 业务逻辑层
>
> * 数据访问层
用三层架构的目的就是为了实现 「高内聚低耦合」 的思想:
- 高内聚:尽可能类的每个成员方法只完成一件事
- 低耦合:减少类内部,一个成员方法调用另一个成员方法
从类角度来看,高内聚低耦合:减少类内部,对其他类的调用
从功能块来看,高内聚低耦合:减少模块之间的交互复杂度
简单来说,就是「解耦」 :只做自己功能内的事
- 用本项目的一个例子来解释三层结构
1. 创建 `Student` 实体类
```java
public class Student {
// 学号
private String id;
// 姓名
private String name;
// 性别
private String gender;
// 密码
private String password;
// 年龄
private Integer age;
// 专业
private String major;
// 学院
private String college;
// ...省略 set/get 方法
}
```
2. 编写数据访问层接口( `StudentServiceDao` )
使用**注解开发**编写 `sql mapper`,简单高效
```java
public interface StudentDao {
// ...
@Select("select * from student where id = #{id}")
public Student getStudentById(@Param("id") String id);
// ...
}
```
3. 编写业务逻辑层接口( `StudentService `)
```java
@Transactional
public interface StudentService {
// ...
/**
* 根据学号查询学生
* @param id
* @return 学生实体
*/
public Student getStudentById(String id);
// ...
}
```
4. 编写业务逻辑层实现( `StudentServiceImpl` )
```java
@Service
public class StudentServiceImpl implements StudentService {
// ...
@Override
public Student getStudentById(String id) {
return studentDao.getStudentById(id);
}
// ...
}
```
5. 编写表现层控制器 ( `adminController` )
*此处是管理员控制器调用方法*
```java
@RestController // REST 风格编写
@RequestMapping("/adminController")
public class AdminController {
@Autowired // 自动装配
StudentService studentService;
// ...
@GetMapping("/student/id")
public Result getStudentById(@RequestParam("id") String id) {
Student student = studentService.getStudentById(id);
Integer code = student != null ? Code.GET_OK : Code.GET_ERR;
String msg = student != null ? "" : "数据查询失败,请重试!";
return new Result(code, student, msg);
}
// ...
}
```
6. 之后将数据发送给前端渲染
- 面向切面编程 AOP, 控制反转 IoC, 依赖注入DI,全部交由配置文件处理,进而 Spring 管理所有 Java Bean
```
├─config
│ JdbcConfig.java
│ MyBatisConfig.java
│ ServletConfig.java
│ SpringConfig.java
│ SpringMvcConfig.java
│ SpringMvcSupport.java
```
- 请求状态码机制
在前后端发送请求的过程中,制定响应码 `Code`, 易于之后的 debug
<img src="https://expicture.oss-cn-beijing.aliyuncs.com/img/202211081703179.png" alt="image-20221108165645959" style="zoom:80%;" />
```java
public class Code {
// ...
public static final Integer GET_OK = 20041;
public static final Integer GET_ERR = 20040;
// ...
}
```
## 版本日志
Version 1.0.0
1. A 新增 README.md 文件
2. U 更新 登录页面已支持 [管理员,老师,学生] 三种角色登录
Version 1.0.1
1. A 新
没有合适的资源?快使用搜索试试~ 我知道了~
基于 JAVA SSM 的学生选课信息管理系统.zip
共252个文件
js:68个
class:24个
java:24个
0 下载量 49 浏览量
2024-11-18
10:02:53
上传
评论
收藏 7.43MB ZIP 举报
温馨提示
计算机系毕业设计
资源推荐
资源详情
资源评论
收起资源包目录
基于 JAVA SSM 的学生选课信息管理系统.zip (252个子文件)
access_log.2022-11-05 43KB
access_log.2022-11-06 122KB
access_log.2022-11-07 746KB
access_log.2022-11-08 247KB
AdminController.class 4KB
LoginController.class 4KB
index_jsp.class 4KB
Student.class 2KB
Teacher.class 2KB
TeacherServiceImpl.class 2KB
StudentServiceImpl.class 2KB
StudentDao.class 2KB
TeacherDao.class 2KB
StudentServiceTest.class 2KB
JdbcConfig.class 2KB
Result.class 1KB
ServletConfig.class 1KB
MyBatisConfig.class 1KB
SpringMvcSupport.class 1KB
AdminServiceImpl.class 837B
SpringConfig.class 818B
StudentService.class 796B
TeacherService.class 796B
Admin.class 765B
Code.class 666B
SpringMvcConfig.class 610B
AdminDao.class 489B
AdminService.class 323B
style-dark.css 315KB
style.css 315KB
icons.min.css 264KB
bootstrap.css 143KB
bootstrap.min.css 119KB
bootstrap-theme.css 25KB
bootstrap-theme.min.css 23KB
summernote-bs4.css 19KB
commingsoon.css 16KB
fullcalendar.min.css 16KB
simplemde.min.css 11KB
bootstrap-table.min.css 9KB
dataTables.bootstrap4.css 6KB
buttons.bootstrap4.css 5KB
responsive.bootstrap4.css 5KB
select.bootstrap4.css 5KB
jquery-jvectormap-1.2.2.css 693B
morris.css 433B
top-buffer.css 37B
materialdesignicons-webfont.eot 469KB
ionicons.eot 110KB
feather.eot 55KB
Linearicons-Free.eot 55KB
dripicons-v2.eot 40KB
glyphicons-halflings-regular.eot 20KB
summernote.eot 9KB
.gitignore 176B
modifyStudent.html 17KB
deleteStudent.html 14KB
home.html 12KB
addStudent.html 12KB
login-new.html 4KB
login.html 3KB
LoginController.java 4KB
AdminController.java 3KB
index_jsp.java 3KB
Teacher.java 2KB
Student.java 2KB
StudentServiceImpl.java 2KB
TeacherServiceImpl.java 2KB
StudentService.java 1KB
TeacherService.java 1KB
StudentDao.java 1KB
TeacherDao.java 1KB
JdbcConfig.java 1KB
StudentServiceTest.java 1KB
ServletConfig.java 895B
MyBatisConfig.java 845B
Result.java 798B
SpringMvcSupport.java 661B
SpringConfig.java 559B
AdminServiceImpl.java 515B
Admin.java 424B
AdminService.java 374B
SpringMvcConfig.java 356B
AdminDao.java 351B
Code.java 349B
background.jpg 1.18MB
loginbackground_01.jpg 699KB
bg-auth.jpg 519KB
bg-auth-2.jpg 125KB
loginbackground_02.jpg 108KB
bg-2.jpg 88KB
bg-1.jpg 78KB
bg-4.jpg 75KB
bg-5.jpg 69KB
bg-3.jpg 66KB
project-1.jpg 40KB
avatar-2.jpg 7KB
avatar-5.jpg 7KB
avatar-7.jpg 7KB
avatar-1.jpg 6KB
共 252 条
- 1
- 2
- 3
资源评论
学术菜鸟小晨
- 粉丝: 2w+
- 资源: 5768
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于微信小程序的农产品自主供销小程序答辩PPT.ppt
- 基于微信小程序的“最多跑一次”微信小程序答辩PPT.ppt
- 基于微信小程序的面向企事业单位的项目申报小程序答辩PPT.ppt
- 基于微信小程序的数学辅导微信小程序答辩PPT.ppt
- 基于微信小程序的食堂线上预约点餐系统答辩PPT.ppt
- 基于微信小程序的书籍销售系统答辩PPT.ppt
- 基于微信小程序的校园订餐小程序答辩PPT.ppt
- 计算机语言学中marb算法的python实现
- 基于微信小程序的鲜花销售微信小程序答辩PPT.ppt
- 基于微信小程序的校园商铺系统答辩PPT.ppt
- 基于微信小程序的学生选课系统答辩PPT.ppt
- 基于微信小程序的校园失物招领答辩PPT.ppt
- 基于微信小程序的新冠疫苗预约小程序答辩PPT.ppt
- 基于微信小程序的医院核酸检测预约挂号微信小程序答辩PPT.ppt
- 基于微信小程序的学习资料销售平台答辩PPT.ppt
- 基于微信小程序的医院预约挂号系统小程序答辩PPT.ppt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功