Java项目学生管理系统三添加学生

​ 欢迎来到本篇博客,昨天我们学习的是查询所有,今天我们将探索一个令人兴奋的话题——Java项目学生管理系统的学生添加功能。作为一个学生管理系统的关键功能之一,学生添加模块扮演着连接教育工作者与学生信息的桥梁。通过本文,我们将深入了解如何通过Java编程语言实现这一功能,让您能够更加高效地管理学生信息。

添加学生

分析

在这里插入图片描述

添加:后端

1)Service
  • 接口

    在这里插入图片描述

        /**
         * 添加学生
         * @param student
         * @return
         */
        Boolean save(Student student);
    
  • 实现类

    在这里插入图片描述

    @Override
        public Boolean save(Student student) {
            //1 保存基本信息
            int result = studentMapper.insert(student);
            //TODO 2 保存关联数据
    
    
            return result == 1;
        }
    
2)Controller

在这里插入图片描述

    @PostMapping
    public ResponseEntity<String> add(@RequestBody Student student) {
        //添加
        boolean result = studentService.save(student);
        //处理结果
        if(result) {
            return ResponseEntity.ok("添加成功");
        }
        return ResponseEntity.ok("添加失败");
    }

添加:前端

在这里插入图片描述

<template>
  <div>
    <el-form ref="form" :model="student" label-width="80px">
      <el-form-item label="姓名">
        <el-input v-model="student.sname"></el-input>
      </el-form-item>
      <el-form-item label="年龄">
        <el-input v-model="student.age"></el-input>
      </el-form-item>
      <el-form-item label="性别">
        <el-radio-group v-model="student.gender">
          <el-radio label="1">男</el-radio>
          <el-radio label="0">女</el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="生日">
        <el-date-picker type="date" v-model="student.birthday" value-format="yyyy-MM-dd" placeholder="选择您的生气" ></el-date-picker>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="addStudent">添加</el-button>
        <el-button>取消</el-button>
      </el-form-item>
    </el-form>
    {{student}}
  </div>
</template>

<script>
export default {
  data() {
    return {
      student: {}
    }
  },
  methods: {
    async addStudent() {
      let { data } = await this.$http.post('/student', this.student)
      //提示
      this.$message.success(data)
      //this.$message.error(data) //失败
      //跳转到列表页面
      this.$router.push('/studentList')
    }
  },
}
</script>

<style>

</style>

班级列表:前端

在这里插入图片描述

<template>
  <div>
    <el-form ref="form" :model="student" label-width="80px">
      <el-form-item label="姓名">
        <el-input v-model="student.sname"></el-input>
      </el-form-item>
      <el-form-item label="班级">
        <el-select v-model="student.cid" clearable placeholder="请选择班级">
          <el-option v-for="(classes,index) in classesList" :key="index" :label="classes.cname" :value="classes.cid"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="年龄">
        <el-input v-model="student.age"></el-input>
      </el-form-item>
      <el-form-item label="性别">
        <el-radio-group v-model="student.gender">
          <el-radio label="1">男</el-radio>
          <el-radio label="0">女</el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="生日">
        <el-date-picker type="date" v-model="student.birthday" value-format="yyyy-MM-dd" placeholder="选择您的生气" ></el-date-picker>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="addStudent">添加</el-button>
        <el-button>取消</el-button>
      </el-form-item>
    </el-form>
    {{student}}
  </div>
</template>

<script>
export default {
  data() {
    return {
      student: {},
      classesList: [],    //所有班级
    }
  },
  methods: {
    async addStudent() {
      let { data } = await this.$http.post('/student', this.student)
      //提示
      this.$message.success(data)
      //this.$message.error(data) //失败
      //跳转到列表页面
      this.$router.push('/studentList')
    },
    async selectAllClasses() {
      let { data } = await this.$http.get('/classes')
      this.classesList = data
    },
  },
  mounted() {   //页面加载成功
    //查询所有班级
    this.selectAllClasses()
  },
}
</script>

<style>

</style>

城市级联:前端(同步)

  • 步骤1:发送ajax查询所有的城市

  • 步骤2:使用级联菜单显示城市数据

  • 步骤3:修改后端City,过滤集合为空的数据

  • 步骤4:修改前端添加内容,将 cityArr数组 转换成 cityIds字符串

  • 步骤1:发送ajax查询所有的城市

    在这里插入图片描述

  • 步骤2:使用级联菜单显示城市数据
    在这里插入图片描述

  • 步骤3:修改后端City,过滤集合为空的数据

    在这里插入图片描述

  • 步骤4:修改前端添加内容,将 cityArr数组 转换成 cityIds字符串

    在这里插入图片描述

<template>
  <div>
    <el-form ref="form" :model="student" label-width="80px">
      <el-form-item label="姓名">
        <el-input v-model="student.sname"></el-input>
      </el-form-item>
      <el-form-item label="班级">
        <el-select v-model="student.cid" clearable placeholder="请选择班级">
          <el-option v-for="(classes,index) in classesList" :key="index" :label="classes.cname" :value="classes.cid"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="年龄">
        <el-input v-model="student.age"></el-input>
      </el-form-item>
      <el-form-item label="性别">
        <el-radio-group v-model="student.gender">
          <el-radio label="1">男</el-radio>
          <el-radio label="0">女</el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="生日">
        <el-date-picker type="date" v-model="student.birthday" value-format="yyyy-MM-dd" placeholder="选择您的生气" ></el-date-picker>
      </el-form-item>
      <el-form-item label="城市">
        <el-cascader
          v-model="student.cityArr"
          :options="cityList"
          :props="{ expandTrigger: 'hover', value: 'cid', label: 'cityName',children: 'children' }">
        </el-cascader>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="addStudent">添加</el-button>
        <el-button>取消</el-button>
      </el-form-item>
    </el-form>
    {{student}}
  </div>
</template>

<script>
export default {
  data() {
    return {
      student: {
        cityArr: []
      },
      classesList: [],    //所有班级
      cityList: [],       //所有城市
    }
  },
  methods: {
    async addStudent() {
      // 处理数据
      this.student.cityIds = this.student.cityArr.join(",")
      //debugger
      // 添加ajax
      let { data } = await this.$http.post('/student', this.student)
      //提示
      this.$message.success(data)
      //this.$message.error(data) //失败
      //跳转到列表页面
      this.$router.push('/studentList')
    },
    async selectAllClasses() {
      let { data } = await this.$http.get('/classes')
      this.classesList = data
    },
    async selectAllCity() {
      let {data : cityList} = await this.$http.get('/city')
      this.cityList = cityList
    }
  },
  mounted() {   //页面加载成功
    //查询所有班级
    this.selectAllClasses()
    //查询所有城市
    this.selectAllCity();
  },
}
</script>

<style>

</style>

选课:前端

  • 步骤1:使用ajax查询所有的课程

  • 步骤2:使用复选框展示

  • 步骤1:使用ajax查询所有的课程

在这里插入图片描述

  • 步骤2:使用复选框展示

    在这里插入图片描述

完善添加:后端

  • 步骤1:修改student,添加courseIds属性

  • 步骤2:创建StudentCourse javaBean

  • 步骤3:创建StudentCourseMapper

  • 步骤4:修改Student,修改id属性注解,添加时获得数据库自动生成的id

  • 步骤5:修改StudentService

  • 步骤1:修改student,添加courseIds属性

    在这里插入图片描述

  • 步骤2:创建StudentCourse javaBean

    在这里插入图片描述

    package com.czxy.domain;
    
    import javax.persistence.Column;
    import javax.persistence.Id;
    import javax.persistence.Table;
    
    /**
     * @author 桐叔
     * @email liangtong@itcast.cn
     * @description
     */
    @Table(name = "tb_student_course")
    public class StudentCourse {
        @Column(name = "s_id")
        private Integer sid;
    
        @Column(name = "c_id")
        private Integer cid;
    
        private Double score;
    
    }
    
    /*
    CREATE TABLE `tb_student_course` (
      `s_id` INT NOT NULL COMMENT '学生ID',
      `c_id` INT NOT NULL COMMENT '课程ID',
      `score` DOUBLE DEFAULT NULL,
      PRIMARY KEY (`s_id`,`c_id`)
    );
     */
    
  • 步骤3:创建StudentCourseMapper

    package com.czxy.mapper;
    
    import com.czxy.domain.StudentCourse;
    import tk.mybatis.mapper.common.Mapper;
    
    /**
     * @author 桐叔
     * @email liangtong@itcast.cn
     * @description
     */
    public interface StudentCourseMapper extends Mapper<StudentCourse> {
    }
    
    
  • 步骤4:修改Student,修改id属性注解,添加时获得数据库自动生成的id

    在这里插入图片描述

  • 步骤5:修改StudentService

    在这里插入图片描述

    至此,我们已经成功完成了Java项目学生管理系统的学生添加功能。通过学习本文,您不仅了解了如何通过Java语言开发一个功能强大的学生管理系统,还深入研究了如何实现学生添加模块。无论您是一位教育工作者,还是一个对Java编程感兴趣的学习者,这些知识都将对您的日常工作或学术研究提供极大的帮助。

  • 23
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛慕昭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值