天天看點

java一對多實體類怎麼寫_什麼是實體表,什麼是關系表,一對多和多對多應該怎麼設計表?...

這裡是修真院後端小課堂,每篇分享文從

【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴充思考】【更多讨論】【參考文獻】

八個方面深度解析後端知識/技能,本篇分享的是:

【什麼是實體表,什麼是關系表,一對多和多對多應該怎麼設計表?

1 背景介紹】

大家好,我是IT修真院深圳分院第十三期學員,一枚正直純潔善良的JAVA程式員。 今天給大家分享一下,修真院官網JAVA任務二裡面的知識點:

什麼是實體表,什麼是關系表,一對多和多對多應該怎麼設計表?

1 背景介紹

在任務三設計資料庫的時候,需要理清表與表資料之間的關系,這時候就需要知道什麼是實體表和關系表。然後根據他們之間的關系設計表

2.知識剖析

2.1什麼是實體表

實體表就是對應實際的對象的表,比如:學生表,老師表

2.2什麼是一對一、一對多和多對多?

1.一對一、一對多和多對多都是指資料表與表中的資料關系,不是表與表之間的關系

2.一對一:一個班主任隻屬于一個班級,一個班級也隻能有一個班主任

3.一對多:一個顧客對應多個訂單,而一個訂單隻能對應一個客戶

4.多對多:一個學生有多個老師,一個老師有多個學生

2.3什麼是關系表

關系表是表示表與表之間的資料關系,我的了解是:關系表設計一般隻存在多對多。

3.常見問題

1)什麼是實體表?

2)什麼是關系表?

3)怎麼設計表,多對多怎麼在實際代碼中表示?

4.解決方案:

設計表:一對一和一對多在表中多加一個關聯字段,多對多多設計一個關聯表

代碼中實體類的編寫:一對一在實體類中多加一個屬性,一對多在實體類中多加一個集合屬性,多對多就是在兩個實體類中各加一個集合屬性

5.編碼實戰

學生表

java一對多實體類怎麼寫_什麼是實體表,什麼是關系表,一對多和多對多應該怎麼設計表?...

老師表

java一對多實體類怎麼寫_什麼是實體表,什麼是關系表,一對多和多對多應該怎麼設計表?...

關系表

java一對多實體類怎麼寫_什麼是實體表,什麼是關系表,一對多和多對多應該怎麼設計表?...

學生實體類

package mybatisTest.pojo;

import java.util.List;

public class Student {

private Integer stuId;

private String stuName;

private Integer age;

private List teachers;

public Integer getStuId() {

return stuId;

}

public void setStuId(Integer stuId) {

this.stuId = stuId;

}

public String getStuName() {

return stuName;

}

public void setStuName(String stuName) {

this.stuName = stuName;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

public List getTeachers() {

return teachers;

}

public void setTeachers(List teachers) {

this.teachers = teachers;

}

@Override

public String toString() {

return "Student{" +

"stuId=" + stuId +

", stuName='" + stuName + '\'' +

", age=" + age +

", teachers=" + teachers +

'}';

}

}

老師實體類

package mybatisTest.pojo;

import java.util.List;

public class Teacher {

private Integer teaId;

private String teaName;

private String gender;

private List students;

public Integer getTeaId() {

return teaId;

}

public void setTeaId(Integer teaId) {

this.teaId = teaId;

}

public String getTeaName() {

return teaName;

}

public void setTeaName(String teaName) {

this.teaName = teaName;

}

public String getGender() {

return gender;

}

public void setGender(String gender) {

this.gender = gender;

}

public List getStudents() {

return students;

}

public void setStudents(List students) {

this.students = students;

}

@Override

public String toString() {

return "Teacher{" +

"teaId=" + teaId +

", teaName='" + teaName + '\'' +

", gender='" + gender + '\'' +

", students=" + students +

'}';

}

}

dao層接口

package mybatisTest.dao;

import mybatisTest.pojo.Student;

import java.util.List;

public interface StuDao {

List queryStu();

}

package mybatisTest.dao;

import mybatisTest.pojo.Teacher;

import java.util.List;

public interface TeaDao {

List queryTea();

}

xml檔案

mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select s.*,t.*

from student s,teacher t,stu_tea st

where s.stu_id=st.stu_id and t.tea_id=st.tea_id

mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

SELECT t.*,s.*

from teacher t,student s,stu_tea st

WHERE st.tea_id=t.tea_id

and s.stu_id=st.stu_id

```

測試

Student{stuId=1, stuName='張三', age=15, teachers=[Teacher{teaId=1, teaName='趙六老師', gender='男', students=null}, Teacher{teaId=2, teaName='錢七老師', gender='男', students=null}, Teacher{teaId=3, teaName='二三老師', gender='女', students=null}]}

Student{stuId=2, stuName='李四', age=16, teachers=[Teacher{teaId=2, teaName='錢七老師', gender='男', students=null}, Teacher{teaId=3, teaName='二三老師', gender='女', students=null}]}

Student{stuId=3, stuName='王武', age=17, teachers=[Teacher{teaId=1, teaName='趙六老師', gender='男', students=null}, Teacher{teaId=3, teaName='二三老師', gender='女', students=null}]}

Teacher{teaId=1, teaName='趙六老師', gender='男', students=[Student{stuId=1, stuName='張三', age=15, teachers=null}, Student{stuId=3, stuName='王武', age=17, teachers=null}]}

Teacher{teaId=2, teaName='錢七老師', gender='男', students=[Student{stuId=1, stuName='張三', age=15, teachers=null}, Student{stuId=2, stuName='李四', age=16, teachers=null}]}

Teacher{teaId=3, teaName='二三老師', gender='女', students=[Student{stuId=3, stuName='王武', age=17, teachers=null}, Student{stuId=2, stuName='李四', age=16, teachers=null}, Student{stuId=1, stuName='張三', age=15, teachers=null}]}

6.擴充思考:

在多對多的設計中,關系表好像一般都沒有實體類,但如果我要修改多對多之間的關系怎麼修改?

注:本人初學java者,如有不對敬請指出,謝謝!

7.參考文獻

CSDN、百度百科

8.更多讨論

7.參考文獻

CSDN、百度百科

8 更多讨論

總結:

1))什麼是實體表?

實體表就是對應實際的對象的表,比如:學生表,老師表

2)什麼是關系表?

關系表是表示表與表之間的資料關系,我的了解是:關系表設計一般隻存在多對多。

3)怎麼設計表,多對多怎麼在實際代碼中表示?

設計表:一對一和一對多在表中多加一個關聯字段,多對多多設計一個關聯表

代碼中實體類的編寫:一對一在實體類中多加一個屬性,一對多在實體類中多加一個集合屬性,多對多就是在兩個實體類中各加一個集合屬性

溫馨提示:本人初學java者,如有不對敬請指出,謝謝!

PPT連結 視訊連結