mysql 資料庫設計:java如何往多對多的表中插入資料
阿新 • • 發佈:2021-01-31
我們都知道多對多的表需要建立關係表:表裡的資料怎麼新增:
為什麼存在關係表,因為學生和課程之間產生了聯絡。
實際的開發場景必然是:錄入學生資訊的時候,要求選擇學生的課程,有人會疑問萬一我不錄課程楠? 如果你不錄課程,學生和課程之間就沒有了聯絡,關係表也沒有存在的必要。
舉個栗子:假如有一個新增學生功能:
前端傳的資訊: 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