[Java毕设项目02]基于SpringBoot开发的学生信息管理系统

1、系统技术栈

  • 后端:Springboot、MyBatis、SpringMVC

  • 前端:html、css、JavaScript、bootstrap、Vue.js

  • JDK版本:1.8

  • 数据库:MySQL 5.7

  • 前后端:不分离

  • 编辑器:IDEA 2022

 2、数据表的设计(只展示管理员、学生、教师、学期的表设计)

管理员信息表

列名

数据类型

是否为空

主键

自增

备注

admin_id

varchar(50)

登录账号

admin_name

varchar(50)

姓名

admin_pass

varchar(255)

密码

学生信息表

列名

数据类型

是否为空

主键

自增

备注

stu_id

varchar(255)

登录账号

stu_name

varchar(50)

学生姓名

stu_pass

varchar(255)

学生登录密码

stu_class

varchar(100)

学生班级

stu_sex

int(11)

学生性别

stu_tele

varchar(255)

手机号

教师信息表

列名

数据类型

是否为空

主键

自增

备注

tea_id

varchar(255)

登录账号

tea_name

varchar(50)

教师姓名

tea_pass

varchar(255)

教师登录密码

tea_sex

varchar(50)

教师性别

tea_tele

varchar(255)

手机号

学期信息表

列名

数据类型

是否为空

主键

自增

备注

res_id

int(50)

学期id

stu_id

varchar(255)

学生id

sub_name

varchar(255)

学科名称

res_num

int(11)

数量

res_term

varchar(255)

学期

3、 系统界面实现以及部分后台代码实现

登录模块
✥界面


✥部分代码

package com.zzx.demo.controller;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zzx.demo.service.AdminService;
import com.zzx.demo.service.ClassService;
import com.zzx.demo.service.StudentService;
import com.zzx.demo.service.TeacherService;
import com.zzx.demo.bean.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;
import javax.validation.Valid;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.*;

@Controller
public class AdminController {

    @Autowired
    private AdminService adminService;

    @Autowired
    private ClassService classService;

    @Autowired
    private StudentService studentService;

    @Autowired
    private TeacherService teacherService;

    @PostMapping(value = "/adm/login")
    public String login(@RequestParam("username") String username,
                        @RequestParam("password") String password, Map<String,Object> map, HttpSession session)
    {
        Admin adm=adminService.adminLogin(username,password);
        if(adm!=null)
        {
            List<Classes> classes=classService.getAllClass();
            session.setAttribute("loginUser",username);
            return "redirect:/admmain.html";
        }
        else
        {
            map.put("msg","用户名或密码错误");
            return  "login";
        }
    }


管理员模块
✥界面

✥部分代码

package com.zzx.demo.controller;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zzx.demo.service.AdminService;
import com.zzx.demo.service.ClassService;
import com.zzx.demo.service.StudentService;
import com.zzx.demo.service.TeacherService;
import com.zzx.demo.bean.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;
import javax.validation.Valid;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.*;

@Controller
public class AdminController {

    @Autowired
    private AdminService adminService;

    @Autowired
    private ClassService classService;

    @Autowired
    private StudentService studentService;

    @Autowired
    private TeacherService teacherService;

 
    //返回首页
    @GetMapping(value = "/adm/toindex")
    public String toindex(){
        return "redirect:/admmain.html";
    }

    //返回学生管理首页
    @GetMapping(value = "/adm/tostudmin/{pn}")
    public String tostudmin(@PathVariable("pn") Integer pn,Model model)
    {
        PageHelper.startPage(pn, 6);
        List<Student> students=studentService.getAllStudent();
        List<Classes> classes = classService.getAllClass();
        PageInfo<Student> page = new PageInfo<Student>(students, 5);
        model.addAttribute("classes",classes);
        model.addAttribute("pageInfo",page);
        return "forward:/stuadmin.html";
    }

    //返回学生添加页面
    @GetMapping(value = "/adm/stuadd")
    public String stutoaddpage(Model model)
    {
        List<Classes> classes = classService.getAllClass();
        model.addAttribute("classes",classes);
        return "adm/addstu";
    }

    //处理学生添加事务
    @PostMapping(value = "/adm/stuAdd")
    public String stuAdd(@Valid Student student, BindingResult bindingResult,Model model)
    {
        List<ObjectError> allErrors = bindingResult.getAllErrors();
        List<MyError> errmsg = new ArrayList<>();
        List<Classes> classes = classService.getAllClass();
        if(allErrors.size()==0)
        {
            Student studentVail=studentService.selectById(student.getStuId());
            if(studentVail==null)
            {
                studentService.addStudent(student);
                return "redirect:/adm/tostudmin/1";
            }
            else{
                errmsg.add(new MyError("已存在该学号的学生"));
                model.addAttribute("errors",errmsg);
                model.addAttribute("stu",student);
                model.addAttribute("classes",classes);
                return "adm/addstu";
            }
        }
        else {
            for (ObjectError error:allErrors)
            {
                errmsg.add(new MyError(error.getDefaultMessage()));
            }
            model.addAttribute("errors",errmsg);
            model.addAttribute("stu",student);
            model.addAttribute("classes",classes);
            return "adm/addstu";
        }
    }

    //处理删除学生事务
    @DeleteMapping(value = "/adm/stu/{stuId}")
    public String delestu(@PathVariable("stuId") String stuId)
    {
        studentService.deleStu(stuId);
        return "redirect:/adm/tostudmin/1";
    }

    //返回学生修改页面
    @GetMapping(value = "/adm/stu/{stuId}")
    public String updateStuPage(@PathVariable("stuId") String stuId,Model model)
    {
        Student stu=studentService.selectById(stuId);
        List<Classes> classes=classService.getAllClass();
        model.addAttribute("stu",stu);
        model.addAttribute("classes",classes);
        return "adm/updatestu";
    }

    //更新学生信息操作
    @PutMapping(value = "/adm/stu")
    public String updateStu(@Valid Student student,BindingResult bindingResult,Model model)
    {


        List<ObjectError> allErrors = bindingResult.getAllErrors();
        List<MyError> errmsg = new ArrayList<>();
        List<Classes> classes = classService.getAllClass();
        if(allErrors.size()==0)
        {
            System.out.println(student);
            studentService.deleStu(student.getStuId());
            studentService.addStudentHavePass(student);
            return "redirect:/adm/tostudmin/1";
        }
        else
        {
            for (ObjectError error:allErrors)
            {
                errmsg.add(new MyError(error.getDefaultMessage()));
            }
            model.addAttribute("errors",errmsg);
            model.addAttribute("stu",student);
            model.addAttribute("classes",classes);
            return "adm/updatestu";
        }
    }

    //根据ID查询学生
    @GetMapping(value = "/adm/selectById")
    public String selectById(@Param("stuId") String stuId, Model model)
    {
        Student student=studentService.selectById(stuId);
        List<Classes> classes=classService.getAllClass();
        model.addAttribute("classes",classes);
        model.addAttribute("stus",student);
        return "adm/stubyid";
    }

    //根据班级查询学生
    @GetMapping(value = "/adm/selectByClass/{pn}")
    public String selectStuByClass(@PathVariable("pn") Integer pn,@Param("className") String className,Model model)
    {
        PageHelper.startPage(pn, 6);
        List<Student> stus=studentService.seleStuByClassName(className);
        List<Classes> classes=classService.getAllClass();
        PageInfo<Student> page = new PageInfo<Student>(stus, 5);
        model.addAttribute("pageInfo",page);
        model.addAttribute("classes",classes);
        model.addAttribute("className",className);
        return "adm/stubyclass";
    }

    //返回教师管理首页
    @GetMapping(value = "/adm/toteadmin/{pn}")
    public String toteadmin(@PathVariable("pn") Integer pn,Model model)
    {
        PageHelper.startPage(pn, 6);
        List<Teacher> teachers=teacherService.getAllTeacher();
        PageInfo<Teacher> page = new PageInfo<Teacher>(teachers, 5);
        model.addAttribute("pageInfo",page);
        return "adm/tealist";
    }


    //返回教师添加页面
    @GetMapping(value = "/adm/teaadd")
    public String teatoaddpage()
    {
        return "adm/addtea";
    }

    //处理教师添加事务
    @PostMapping(value = "/adm/teaAdd")
    public String teaAdd(@Valid Teacher teacher, BindingResult bindingResult,Model model)
    {
        List<ObjectError> allErrors = bindingResult.getAllErrors();
        List<MyError> errmsg = new ArrayList<>();
        if(allErrors.size()==0)
        {
            Teacher teacherVail=teacherService.selectById(teacher.getTeaId());
            if(teacherVail==null)
            {
                teacherService.addTeacher(teacher);
                return "redirect:/adm/toteadmin/1";
            }
            else{
                errmsg.add(new MyError("已存在该工号的教师"));
                model.addAttribute("errors",errmsg);
                model.addAttribute("tea",teacher);
                return "adm/addtea";
            }
        }
        else {
            for (ObjectError error:allErrors)
            {
                errmsg.add(new MyError(error.getDefaultMessage()));
            }
            model.addAttribute("errors",errmsg);
            model.addAttribute("tea",teacher);
            return "adm/addtea";
        }
    }


    //返回教师修改页面
    @GetMapping(value = "/adm/tea/{teaId}")
    public String updateTeaPage(@PathVariable("teaId") String teaId,Model model)
    {
        Teacher tea=teacherService.selectById(teaId);
        model.addAttribute("tea",tea);
        return "adm/upadtetea";
    }


    //更新教师信息操作
    @PutMapping(value = "/adm/tea")
    public String updateTea(@Valid Teacher teacher,BindingResult bindingResult,Model model)
    {
        List<ObjectError> allErrors = bindingResult.getAllErrors();
        List<MyError> errmsg = new ArrayList<>();
        if(allErrors.size()==0)
        {
            System.out.println(teacher);
            teacherService.deleTea(teacher.getTeaId());
            teacherService.addTeacherHavePass(teacher);
            return "redirect:/adm/toteadmin/1";
        }
        else
        {
            for (ObjectError error:allErrors)
            {
                errmsg.add(new MyError(error.getDefaultMessage()));
            }
            model.addAttribute("errors",errmsg);
            model.addAttribute("tea",teacher);
            return "adm/upadtetea";
        }
    }

    //根据ID查询教师
    @GetMapping(value = "/adm/selectTeaById")
    public String selectTeaById(@Param("teaId") String teaId, Model model)
    {
        Teacher teacher=teacherService.selectById(teaId);
        model.addAttribute("tea",teacher);
        return "adm/teabyid";
    }

    //处理删除教师事务
    @DeleteMapping(value = "/adm/tea/{teaId}")
    public String deletea(@PathVariable("teaId") String teaId)
    {
        teacherService.deleTea(teaId);
        return "redirect:/adm/toteadmin/1";
    }

    //返回班级管理首页
    @GetMapping(value = "/adm/toclassdmin/{pn}")
    public String toclassdmin(@PathVariable("pn") Integer pn,Model model)
    {
        PageHelper.startPage(pn, 6);
        List<Classes> classes=classService.getAllClass();
        PageInfo<Classes> page = new PageInfo<Classes>(classes, 5);
        model.addAttribute("pageInfo",page);
        return "adm/classlist";
    }

    //返回班级添加页面
    @GetMapping(value = "/adm/classadd")
    public String classToAddPage()
    {
        return "adm/addclass";
    }

    //处理班级添加事务
    @PostMapping(value = "/adm/classAdd")
    public String classAdd(@Valid Classes classes, BindingResult bindingResult,Model model)
    {
        List<ObjectError> allErrors = bindingResult.getAllErrors();
        List<MyError> errmsg = new ArrayList<>();
        if(allErrors.size()==0)
        {
            if(classService.selectByName(classes.getClassName())==null) {
                Classes classVail = classService.selectById(classes.getClassId());
                if (classVail == null) {
                    classService.addClass(classes);
                    return "redirect:/adm/toclassdmin/1";
                } else {
                    errmsg.add(new MyError("已存在该班级号的班级"));
                    model.addAttribute("errors", errmsg);
                    model.addAttribute("class", classes);
                    return "adm/addclass";
                }
            }
            else
            {
                errmsg.add(new MyError("已存在该班级名字的班级"));
                model.addAttribute("errors", errmsg);
                model.addAttribute("class", classes);
                return "adm/addclass";
            }
        }
        else {
            for (ObjectError error:allErrors)
            {
                errmsg.add(new MyError(error.getDefaultMessage()));
            }
            model.addAttribute("errors",errmsg);
            model.addAttribute("class",classes);
            return "adm/addclass";
        }
    }


    //返回班级修改页面
    @GetMapping(value = "/adm/class/{classId}")
    public String updateClassPage(@PathVariable("classId") String classId,Model model)
    {
        Classes classes=classService.selectById(classId);
        model.addAttribute("class",classes);
        return "adm/upadteclass";
    }


    //更新班级信息操作
    @PutMapping(value = "/adm/class")
    public String updateClass(@Valid Classes classes,BindingResult bindingResult,Model model)
    {
        List<ObjectError> allErrors = bindingResult.getAllErrors();
        List<MyError> errmsg = new ArrayList<>();
        if(allErrors.size()==0)
        {
            System.out.println(classes);
            classService.deleteById(classes.getClassId());
            classService.addClass(classes);
            return "redirect:/adm/toclassdmin/1";
        }
        else
        {
            for (ObjectError error:allErrors)
            {
                errmsg.add(new MyError(error.getDefaultMessage()));
            }
            model.addAttribute("errors",errmsg);
            model.addAttribute("class",classes);
            return "adm/upadteclass";
        }
    }

    //根据Name查询班级
    @GetMapping(value = "/adm/selectClassByName")
    public String selectClassById(@Param("className") String className, Model model)
    {
        Classes classes=classService.selectByName(className);
        model.addAttribute("class",classes);
        return "adm/classbyid";
    }

    //处理删除班级事务
    @DeleteMapping(value = "/adm/class/{classId}")
    public String deleClass(@PathVariable("classId") String classId)
    {
        classService.deleteById(classId);
        return "redirect:/adm/toclassdmin/1";
    }

//    @GetMapping(value = "/adm/selectByClass/{pn}")
    //处理删除学生事务从根据班级查找页面发送来的
    @DeleteMapping(value = "/adm/stubyclass/{stuId}")
    public String delestubyclass(@PathVariable("stuId") String stuId)
    {
        Student student = studentService.selectById(stuId);
        studentService.deleStu(stuId);
        try {
            return "redirect:/adm/selectByClass/1?className="+ URLEncoder.encode(student.getStuClass(),"UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return "redirect:/adm/toclassdmin/1";
    }

    //返回学生修改页面从根据班级查找页面发送来的
    @GetMapping(value = "/adm/stubyclass/{stuId}")
    public String updateStuPagebyclass(@PathVariable("stuId") String stuId,Model model)
    {
        Student stu=studentService.selectById(stuId);
        List<Classes> classes=classService.getAllClass();
        model.addAttribute("stu",stu);
        model.addAttribute("classes",classes);
        model.addAttribute("ininclass",stu.getStuClass());
        return "adm/updatestubyclass";
    }

    //更新学生信息操作从根据班级查找页面发送来的
    @PutMapping(value = "/adm/stubyclass")
    public String updateStubyclass(@Valid Student student,BindingResult bindingResult,Model model,@Param("ininclass") String ininclass)
    {

        List<ObjectError> allErrors = bindingResult.getAllErrors();
        List<MyError> errmsg = new ArrayList<>();
        List<Classes> classes = classService.getAllClass();
        if(allErrors.size()==0)
        {
            System.out.println(student);
            studentService.deleStu(student.getStuId());
            studentService.addStudentHavePass(student);
            try {
                return "redirect:/adm/selectByClass/1?className="+URLEncoder.encode(ininclass,"UTF-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            return "redirect:/adm/toclassdmin/1";

        }
        else
        {
            for (ObjectError error:allErrors)
            {
                errmsg.add(new MyError(error.getDefaultMessage()));
            }
            model.addAttribute("errors",errmsg);
            model.addAttribute("stu",student);
            model.addAttribute("classes",classes);
            return "adm/updatestubyclass";
        }
    }
}

学生模块
✥界面

✥部分代码

package com.zzx.demo.controller;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zzx.demo.bean.*;
import com.zzx.demo.service.ClassService;
import com.zzx.demo.service.ResultssService;
import com.zzx.demo.service.StudentService;
import com.zzx.demo.bean.Classes;
import com.zzx.demo.bean.MyError;
import com.zzx.demo.bean.Resultss;
import com.zzx.demo.bean.Student;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;


@Controller
public class StudentController {

    @Autowired
    private StudentService studentService;

    @Autowired
    private ClassService classService;

    @Autowired
    private ResultssService resultssService;

    @PostMapping(value = "/stu/login")
    public String login(@RequestParam("username") String username,
                        @RequestParam("password") String password, Map<String,Object> map, HttpSession session)
    {
        Student stu=studentService.login(username,password);
        if(stu!=null)
        {
            session.setAttribute("loginUser",username);
            return "redirect:/stumain.html";
        }
        else
        {
            map.put("msg","用户名或密码错误");
            return  "login";
        }
    }

    //返回首页
    @GetMapping(value = "/stu/toindex")
    public String toindex(){
        return "redirect:/stumain.html";
    }


    //返回学生信息修改页面
    @GetMapping(value = "/stu/toUpdateMsgPage")
    public String toUpdateMsgPage(HttpSession httpSession, Model model)
    {

        Student stu= studentService.selectById((String) httpSession.getAttribute("loginUser"));
        List<Classes> classes=classService.getAllClass();
        model.addAttribute("stu",stu);
        model.addAttribute("classes",classes);
        return "stu/updateStu";
    }

    //更新学生信息操作
    @PutMapping(value = "/stu/updateStuMsg")
    public String updateStuMsg(@Valid Student student, BindingResult bindingResult, Model model,HttpSession httpSession)
    {
        List<ObjectError> allErrors = bindingResult.getAllErrors();
        List<MyError> errmsg = new ArrayList<>();
        List<Classes> classes = classService.getAllClass();
        if(allErrors.size()==0)
        {
            Student studentInit=studentService.selectById((String) httpSession.getAttribute("loginUser"));
            student.setStuId(studentInit.getStuId());
            student.setStuName(studentInit.getStuName());
            student.setStuClass(studentInit.getStuClass());
            student.setStuSex(studentInit.getStuSex());

            studentService.deleStu(studentInit.getStuId());
            studentService.addStudentHavePass(student);
            return "redirect:/updateSucc.html";
        }
        else
        {
            for (ObjectError error:allErrors)
            {
                errmsg.add(new MyError(error.getDefaultMessage()));
            }
            model.addAttribute("errors",errmsg);
            model.addAttribute("stu",student);
            model.addAttribute("classes",classes);
            return "stu/updateStu";
        }
    }

    //返回学生成绩首页
    @GetMapping(value = "/stu/toresdmin/{pn}")
    public String toresdmin(@PathVariable("pn") Integer pn,Model model,HttpSession httpSession)
    {
        PageHelper.startPage(pn, 9);
        List<Resultss> resultsses = resultssService.selectByStuId((String) httpSession.getAttribute("loginUser"));
        PageInfo<Resultss> page = new PageInfo<Resultss>(resultsses, 5);
        model.addAttribute("pageInfo",page);
        return "stu/resultlist";
    }

    //根据学期查询成绩
    @GetMapping(value = "/stu/selectResByTerm/{pn}")
    public String selectResByTerm(@PathVariable("pn") Integer pn,@Param("resTerm") String resTerm, Model model,HttpSession httpSession)
    {
        PageHelper.startPage(pn, 9);
        List<Resultss> resultsses=resultssService.selectByStuIdAndResTerm((String) httpSession.getAttribute("loginUser"),resTerm);
        PageInfo<Resultss> page = new PageInfo<Resultss>(resultsses, 5);
        model.addAttribute("pageInfo",page);
        model.addAttribute("resTerm",resTerm);
        return "stu/reslistbyterm";
    }
}

教师模块
✥界面

✥部分代码

package com.zzx.demo.controller;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zzx.demo.bean.*;
import com.zzx.demo.service.ClassService;
import com.zzx.demo.service.ResultssService;
import com.zzx.demo.service.StudentService;
import com.zzx.demo.service.TeacherService;
import com.zzx.demo.bean.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;
import javax.validation.Valid;
import java.util.*;
@Controller
public class TeacherController {
    @Autowired
    private TeacherService teacherService;
    @Autowired
    private ResultssService resultssService;
    @Autowired
    private ClassService classService;
    @Autowired
    private StudentService studentService;
    
    @PostMapping(value = "/tea/login")
    public String login(@RequestParam("username") String username,
                        @RequestParam("password") String password, Map<String,Object> map, HttpSession session)
    {
        Teacher tea=teacherService.login(username,password);
        if(tea!=null)
        {
            session.setAttribute("loginUser",username);
            return "redirect:/teamain.html";
        }
        else
        {
            map.put("msg","用户名或密码错误");
            return  "login";
        }
    }

    //返回首页
    @GetMapping(value = "/tea/toindex")
    public String teaToIndex(){
        return "redirect:/teamain.html";
    }


    //返回教师信息修改页面
    @GetMapping(value = "/tea/toUpdateMsgPage")
    public String teaToUpdateMsgPage(HttpSession httpSession, Model model)
    {

        Teacher tea= teacherService.selectById((String) httpSession.getAttribute("loginUser"));
        model.addAttribute("tea",tea);
        return "tea/updatetea";
    }

    //更新教师信息操作
    @PutMapping(value = "/tea/updateTeaMsg")
    public String updateTeaMsg(@Valid Teacher teacher, BindingResult bindingResult, Model model, HttpSession httpSession)
    {
        List<ObjectError> allErrors = bindingResult.getAllErrors();
        List<MyError> errmsg = new ArrayList<>();
        if(allErrors.size()==0)
        {
            Teacher teacherInit=teacherService.selectById((String) httpSession.getAttribute("loginUser"));
            teacher.setTeaId(teacherInit.getTeaId());
            teacher.setTeaName(teacherInit.getTeaName());
            teacher.setTeaSex(teacherInit.getTeaSex());

            teacherService.deleTea(teacherInit.getTeaId());
            teacherService.addTeacherHavePass(teacher);
            return "redirect:/updateTeaSucc.html";
        }
        else
        {
            for (ObjectError error:allErrors)
            {
                errmsg.add(new MyError(error.getDefaultMessage()));
            }
            model.addAttribute("errors",errmsg);
            model.addAttribute("tea",teacher);
            return "tea/updatetea";
        }
    }

    //返回成绩管理首页
    @GetMapping(value = "/tea/toteadmin/{pn}")
    public String toteadmin(@PathVariable("pn") Integer pn, Model model)
    {
        PageHelper.startPage(pn, 6);
        List<Resultss> resultsses=resultssService.getAllResult();
        PageInfo<Resultss> page = new PageInfo<Resultss>(resultsses, 5);
        List<Classes> classes = classService.getAllClass();
        model.addAttribute("classes",classes);
        model.addAttribute("pageInfo",page);
        return "tea/tearesultlist";
    }

    //返回成绩添加页面
    @GetMapping(value = "/tea/resadd")
    public String toResAddPage()
    {
        return "tea/addResult";
    }

    //处理成绩添加事务
    @PostMapping(value = "/tea/resAdd")
    public String resAdd(@Valid Resultss resultss,BindingResult bindingResult,Model model)
    {
        List<ObjectError> allErrors = bindingResult.getAllErrors();
        List<MyError> errmsg = new ArrayList<>();
        Resultss resultssVail=null;
        if(allErrors.size()==0)
        {
            if(studentService.selectById(resultss.getStuId())!=null) {
                resultssVail = resultssService.selectResultByStuIdAndSubName(resultss.getStuId(), resultss.getSubName());
                if (resultssVail == null) {
                    resultssService.addResult(resultss);
                    return "redirect:/tea/toteadmin/1";
                } else {
                    errmsg.add(new MyError("已存在该学生的此成绩信息"));
                    model.addAttribute("errors", errmsg);
                    model.addAttribute("res", resultss);
                    return "tea/addResult";
                }
            }
            else{
                errmsg.add(new MyError("不存在该学号的学生"));
                model.addAttribute("errors", errmsg);
                model.addAttribute("res", resultss);
                return "tea/addResult";
            }
        }
        else {
            for (ObjectError error:allErrors)
            {
                errmsg.add(new MyError(error.getDefaultMessage()));
            }
            model.addAttribute("errors",errmsg);
            model.addAttribute("res",resultss);
            return "tea/addResult";
        }
    }

    //返回成绩修改页面
    @GetMapping(value = "/tea/res/{resId}")
    public String updateResPage(@PathVariable("resId") int resId,Model model)
    {
        Resultss resultss=resultssService.selectResultByResId(resId);
        model.addAttribute("res",resultss);
        model.addAttribute("resId",resId);
        return "tea/updateResult";
    }

    //更新成绩信息操作
    @PutMapping(value = "/tea/res")
    public String updateRes(@Valid Resultss resultss,BindingResult bindingResult,Model model)
    {


        List<ObjectError> allErrors = bindingResult.getAllErrors();
        List<MyError> errmsg = new ArrayList<>();
        if(allErrors.size()==0)
        {
            System.out.println(resultss);
            resultssService.deleteResultById(resultss.getResId());
            resultssService.addResult(resultss);
            return "redirect:/tea/toteadmin/1";
        }
        else
        {
            for (ObjectError error:allErrors)
            {
                errmsg.add(new MyError(error.getDefaultMessage()));
            }
            model.addAttribute("errors",errmsg);
            model.addAttribute("res",resultss);
            return "tea/updateResult";
        }
    }

    //处理删除成绩信息事务
    @DeleteMapping(value = "/tea/res/{resId}")
    public String deleres(@PathVariable("resId") int stuId)
    {
        resultssService.deleteResultById(stuId);
        return "redirect:/tea/toteadmin/1";
    }

    //根据ID查询学生的成绩
    @GetMapping(value = "/tea/selectById/{pn}")
    public String selectResultByStuId(@PathVariable("pn") Integer pn,@Param("stuId") String stuId, Model model)
    {
        PageHelper.startPage(pn, 6);
        List<Resultss> resultsses=resultssService.selectByStuId(stuId);
        PageInfo<Resultss> page = new PageInfo<Resultss>(resultsses, 5);
        List<Classes> classes=classService.getAllClass();
        model.addAttribute("classes",classes);
        model.addAttribute("pageInfo",page);
        model.addAttribute("stuId",stuId);
        return "tea/tearesultlistbystuid";
    }

4、总结

  1. 管理员:管理员可以管理学生、教师、班级模块信息

  2. 学生:学生可以看到自己信息,可以修改密码和手机号,可以查询分数

  3. 教师:教师可以管理个人信息、可以给学生打分、可以添加新同学、可以管理全年级的分数

  4. 项目所有展示的功能已经实现,大家也可以根据实际情况添加几个自己喜欢的模块

  5. 需要源码的请私信我获取,这里发不了压缩包,希望对你有所帮助

我是猪猪侠,一个爱写代码的码农,期待我们下篇再会!!!

4f6babf375b04d0f9d6a46257df426f6.gif

  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值