1. 程式人生 > 其它 >mysql 資料庫設計:java如何往多對多的表中插入資料

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
在這裡插入圖片描述