多表查詢:
學生表、班級表、課程表、班級課程表
一對一:
一個學生只屬于一個班級。 查詢:
id name age gender banjiName
SELECT s.id,s.`name`,s.age,s.gender,b.id AS banjiId,b.name AS banjiName
FROM student AS s INNER JOIN banji AS b
ON s.banji_id=b.id;
MyBatis中使用association標簽解決一對一關聯查詢,association標簽可以使用的屬性如下:
- property:對象屬性的名稱
- javaType:對象以昂屬性的類型
- column:數據庫中字段的名稱(也可能是起的別名)
public void testOne2One() { SqlSession sqlSession = MyBatisUtil. getSqlSession(); // 最終返回的是一個學生的集合,但是Student里面是有一個banji對象,里面保存了這個學生對應的班級信息 List<Student> list = sqlSession. selectList( "student.findStudentBanjiInfo"); for (Student student : list) { System. out.println( student); } } Student [id=1, name=張三, age=21, gender=男, banji=Banji [id=1, name=java1 807] ] Student [id=2, name=zhangsan, age=12, gender=男, banji=Banji [id=1, name= java1807] ] Student [id=4, name=王五2, age=12, gender=男, banji=Banji [id=2, name=java1812]] ${student.banji.id} ${student.banji.name}
一對多:
多對多:
多對多其實就是分解為兩個一對多。
總結
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注服務器之家的更多內容!
原文鏈接:https://blog.csdn.net/weixin_43890079/article/details/120439006