Java项目学生管理系统四编辑学生

编辑学生

欢迎阅读本篇博客,今天我们将继续探索Java项目学生管理系统的功能,重点关注学生信息的修改模块。在学生管理系统中,修改学生信息是一个关键操作,通过该功能可以方便地更新学生的个人信息、成绩以及其他相关数据。通过本文,我们将深入了解如何使用Java编程语言实现这一功能,让您能够更加灵活、高效地管理和更新学生信息。

1 分析

Java项目学生管理系统四编辑学生_第1张图片

2 基本ajax:前端

Java项目学生管理系统四编辑学生_第2张图片

3 弹出框表单

  • 步骤1:显示弹出框,并添加控制变量

    Java项目学生管理系统四编辑学生_第3张图片

  • 步骤2:列表的修改的按钮,打开弹出框

    Java项目学生管理系统四编辑学生_第4张图片

  • 步骤3:编写弹出框的表单(建议从添加复制,删除不需要的–级联、按钮)

    Java项目学生管理系统四编辑学生_第5张图片

4 城市级联:前端(异步)

  • 配置异步

    Java项目学生管理系统四编辑学生_第6张图片

  • 数据处理

    Java项目学生管理系统四编辑学生_第7张图片

  • 回显

    Java项目学生管理系统四编辑学生_第8张图片

  • 完整代码

    
    
    
    
    
    

5 前端实现

Java项目学生管理系统四编辑学生_第9张图片

    async updateStudent() {
      // 处理数据
      this.student.cityIds = this.student.cityArr.join(",")
      //debugger
      // 添加ajax
      let { data } = await this.$http.put('/student', this.student)
      //提示
      this.$message.success(data)
      //this.$message.error(data) //失败
      //刷新列表
      this.selectAllStudent()
      //关闭弹出框
      this.dialogUpdateStudentVisible = false
    }

6 后端实现

Java项目学生管理系统四编辑学生_第10张图片

  • 思考

    在这里插入图片描述

1)Service
  • 接口

    Java项目学生管理系统四编辑学生_第11张图片

        /**
         * 修改
         * @param student
         * @return
         */
        Boolean update(Student student);
    
  • 实现类

    Java项目学生管理系统四编辑学生_第12张图片

        @Override
        public Boolean update(Student student) {
            //1 修改基本信息
            int result = studentMapper.updateByPrimaryKey(student);
            //2 删除学生所有选课
            Example deleteExample = new Example(StudentCourse.class);
            Example.Criteria deleteCriteria = deleteExample.createCriteria();
            deleteCriteria.andEqualTo("sid", student.getSid());
            studentCourseMapper.deleteByExample(deleteExample);
    
            //3 保存关联数据
            for(Integer courseId: student.getCourseIds()) {
                StudentCourse studentCourse = new StudentCourse();
                studentCourse.setSid(student.getSid());
                studentCourse.setCid(courseId);
                studentCourseMapper.insertSelective(studentCourse);  //保存非空
            }
    
    
            return result == 1;
        }
    
2)Controller

Java项目学生管理系统四编辑学生_第13张图片

    /**
     * 修改
     * @param student
     * @return
     */
    @PutMapping
    public ResponseEntity<String> update(@RequestBody Student student) {
        //添加
        boolean result = studentService.update(student);
        //处理结果
        if(result) {
            return ResponseEntity.ok("修改成功");
        }
        return ResponseEntity.ok("修改失败");
    }

查询详情:后端

1 Service

  • 接口

    Java项目学生管理系统四编辑学生_第14张图片

        /**
         * 通过id查询详情(含选课ids信息)
         * @param sid
         * @return
         */
        Student selectById(Integer sid);
    
  • 实现类

    Java项目学生管理系统四编辑学生_第15张图片

        @Override
        public Student selectById(Integer sid) {
            //1 查询基本信息
            Student student = studentMapper.selectByPrimaryKey(sid);
            //2 关联的选课信息
            List<Course> courseList = courseMapper.selectAllBySid(sid);
            // 2.1 处理数据
            List<Integer> courseIds = courseList.stream().map(course -> course.getCid()).collect(Collectors.toList());
            student.setCourseIds(courseIds);
            //3 返回
            return student;
        }
    

2 Controller

Java项目学生管理系统四编辑学生_第16张图片

    /**
     * 查询详情
     * @param sid
     * @return
     */
    @GetMapping("/{sid}")
    public ResponseEntity<Student> selectById(@PathVariable("sid") Integer sid) {
        //查询
        Student student = studentService.selectById(sid);
        //返回
        return ResponseEntity.ok(student);
    }

在本篇博客中,我们成功地完成了Java项目学生管理系统的学生修改功能。通过深入学习如何使用Java编程语言实现学生信息的修改模块,我们不仅掌握了核心逻辑和技术细节,还探索了如何处理异常情况和保证数据的一致性。

通过这些知识和技能,您可以进一步完善学生管理系统,添加更多功能,并适应特定需求。Java作为一门强大而灵活的编程语言,为我们开发出卓越的学生管理系统提供了坚实的基础。

你可能感兴趣的:(java,开发语言)