Java MyBatis 多表查詢詳解
多表查詢:
學(xué)生表、班級表、課程表、班級課程表


一對一:
一個學(xué)生只屬于一個班級。 查詢:
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標(biāo)簽解決一對一關(guān)聯(lián)查詢,association標(biāo)簽可以使用的屬性如下:
- property:對象屬性的名稱
- javaType:對象以昂屬性的類型
- column:數(shù)據(jù)庫中字段的名稱(也可能是起的別名)
public void testOne2One() {
SqlSession sqlSession = MyBatisUtil. getSqlSession();
// 最終返回的是一個學(xué)生的集合,但是Student里面是有一個banji對象,里面保存了這個學(xué)生對應(yīng)的班級信息
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}
一對多:


多對多:
多對多其實就是分解為兩個一對多。

總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
基于Java的Spring框架來操作FreeMarker模板的示例
這篇文章主要介紹了基于Java的Spring框架來操作FreeMarker模板的示例,講到了用于進(jìn)行web模板文件的插值操作等例子,需要的朋友可以參考下2016-03-03
SpringBoot整合SpringBoot-Admin實現(xiàn)監(jiān)控應(yīng)用功能
本文主要介紹如何整合Spring Boot Admin,以此監(jiān)控Springboot應(yīng)用,文中有相關(guān)的示例代碼供大家參考,需要的朋友可以參考下2023-05-05
Java并發(fā)編程之阻塞隊列(BlockingQueue)詳解
這篇文章主要介紹了詳解Java阻塞隊列(BlockingQueue)的實現(xiàn)原理,阻塞隊列是Java util.concurrent包下重要的數(shù)據(jù)結(jié)構(gòu),有興趣的可以了解一下2021-09-09
java反射機制的一些學(xué)習(xí)心得小結(jié)
這篇文章主要給大家介紹了關(guān)于java反射機制的一些學(xué)習(xí)心得,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
詳解Springboot整合ActiveMQ(Queue和Topic兩種模式)
這篇文章主要介紹了詳解Springboot整合ActiveMQ(Queue和Topic兩種模式),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
解決IDEA中多模塊下Mybatis逆向工程不生成相應(yīng)文件的情況
這篇文章主要介紹了解決IDEA中多模塊下Mybatis逆向工程不生成相應(yīng)文件的情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01

