一、项目简介
二、项目环境
三、项目结构
四、项目实现
1、数据表结构
2、具体功能实现
1.管理员信息
2.教师信息
3.学生信息
4.课程信息
一、项目简介
该项目主要用springbooot、java和Mysql数据库实现,但前端也用了vue。实现的学生信息管理系统(包含教师端、学生端以及管理员端)
教师端有登录过程,功能包括个人信息修改和课程信息
学生端也有登录过程,功能包括个人信息和选课信息
二、项目环境
数据库:MySQL 8.0版本
开发工具:idea2021
数据库管理工具: NAVICAT 16
三、项目结构
项目结构分为管理员、学生、教师三个板块,在板块中有对应的功能实现。
四、项目实现
数据表
管理员表
教师表
学生表
2、具体功能实现
1.管理员信息
代码如下(示例):
@RestController
@RequestMapping("/xueyuanInfo")
public class XueyuanInfoController {
@Resource
private XueyuanInfoService xueyuanInfoService;
@GetMapping
public Result findAll() {
List<XueyuanInfo> list = xueyuanInfoService.findAll();
return Result.success(list);
}
@PostMapping
public Result add(@RequestBody XueyuanInfo xueyuanInfo) {
xueyuanInfoService.add(xueyuanInfo);
return Result.success();
}
@PutMapping
public Result update(@RequestBody XueyuanInfo xueyuanInfo) {
xueyuanInfoService.update(xueyuanInfo);
return Result.success();
}
@DeleteMapping("/{id}")
public Result delete(@PathVariable Long id) {
xueyuanInfoService.deleteById(id);
return Result.success();
}
@GetMapping("/{search}")
public Result find(@PathVariable String search) {
List<XueyuanInfo> list = xueyuanInfoService.find(search);
return Result.success(list);
2.教师信息
代码如下(示例):
@RestController
@RequestMapping("/teacherInfo")
public class TeacherInfoController {
@Resource
private TeacherInfoService teacherInfoService;
@PostMapping
public Result add(@RequestBody TeacherInfo teacherInfo) {
teacherInfoService.add(teacherInfo);
return Result.success();
}
@PutMapping
public Result update(@RequestBody TeacherInfo teacherInfo) {
teacherInfoService.update(teacherInfo);
return Result.success();
}
@GetMapping
public Result findAll() {
List<TeacherInfo> list = teacherInfoService.findAll();
return Result.success(list);
}
@DeleteMapping("/{id}")
public Result deleteById(@PathVariable Long id) {
teacherInfoService.deleteById(id);
return Result.success();
}
@GetMapping("/page")
public Result findPage(@RequestParam Integer pageNum, @RequestParam Integer pageSize) {
PageInfo<TeacherInfo> pageInfo = teacherInfoService.findPage(pageNum, pageSize);
return Result.success(pageInfo);
}
@GetMapping("/{search}")
public Result findPageSearch(@PathVariable String search, @RequestParam Integer pageNum, @RequestParam Integer pageSize) {
PageInfo<TeacherInfo> pageInfo = teacherInfoService.findPageSearch(search, pageNum, pageSize);
return Result.success(pageInfo);
}
3.学生信息
@RestController
@RequestMapping("/studentInfo")
public class StudentInfoController {
@Resource
private StudentInfoService studentInfoService;
@PostMapping
public Result add(@RequestBody StudentInfo studentInfo) {
studentInfoService.add(studentInfo);
return Result.success();
}
@PutMapping
public Result update(@RequestBody StudentInfo studentInfo) {
studentInfoService.update(studentInfo);
return Result.success();
}
@GetMapping
public Result findAll() {
List<StudentInfo> list = studentInfoService.finAll();
return Result.success(list);
}
@DeleteMapping("/{id}")
public Result delete(@PathVariable Long id) {
studentInfoService.deleteById(id);
return Result.success();
4.课程信息
@PostMapping("/xuanke")
public Result xuanke(@RequestBody ClassInfo classInfo, HttpServletRequest request) {
Account user = (Account) request.getSession().getAttribute("user");
if (ObjectUtil.isEmpty(user)) {
throw new CustomException(".1", "登录已失效,请重新登录");
}
// 1. 判断一下该学生有没有选过这门课
XuankeInfo info = xuankeInfoService.find(classInfo.getName(), classInfo.getTeacherId(), user.getId());
if (ObjectUtil.isNotEmpty(info)) {
throw new CustomException(".1", "您已经选过该门课,请不要重复选择");
}
// 2. 把课程信息塞一份到选课信息表里
XuankeInfo xuankeInfo = new XuankeInfo();
BeanUtils.copyProperties(classInfo, xuankeInfo);
xuankeInfo.setId(null);
// 3. 把选课信息表里剩下的字段信息补全
xuankeInfo.setStudentId(user.getId());
xuankeInfo.setStatus("待开课");
xuankeInfoService.add(xuankeInfo);
// 3. 课程信息里的已选人数要加 1
classInfo.setYixuan(classInfo.getYixuan() + 1);
classInfoService.update(classInfo);
return Result.success();
总结
以上就是实现学生信息管理系统的方案,本文仅提供了大致的方案及制作流程,仅供参考,若有问题请帮忙指出。