mysql 数据库设计:java如何往多对多的表中插入数据


我们都知道多对多的表需要建立关系表:表里的数据怎么添加:

为什么存在关系表,因为学生和课程之间产生了联系。

实际的开发场景必然是:录入学生信息的时候,要求选择学生的课程,有人会疑问万一我不录课程楠? 如果你不录课程,学生和课程之间就没有了联系,关系表也没有存在的必要。

举个栗子:假如有一个添加学生功能:
前端传的信息: name:小灰
gender:男
course:数学
那么我sql会这样写:

添加学生信息
@insert("insert into student (name,gender) values (#(name),#{gender})")
void addStudent(@param("name") String name,@param("gender") String gender);

然后分别查处课程对应的id 和 学生对应的id 然后insert into 关系表就可以了。

查学生id
@select("select id from student where name=#{name}")
int findStudentId(@param("name") String name);
一个参数,但是为string类型时,最好加上@param注解 不然可能报错
注:此处未考虑学生姓名重复的情况
查找课程id
@select("select id from course where name=#{name}")
int findCourseId(@param("name") String name)

然后业务层将这两个返回值作为参数传入下面sql

@insert("insert into  student_course (student_id,sourse_id) values(#(studentId),#(courseId)) ")
void addData(@param("studentId" int studentId,@param("courseId") int courseId);

注:当然有时候前端可以直接传课程id

相关表

课程表 course
在这里插入图片描述
学生表 student
在这里插入图片描述
关系表 student_course
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/bryangp/article/details/113028254