Java MyBatis 多表查詢(xún)?cè)斀?/h1>
更新時(shí)間:2021年09月26日 09:30:34 投稿:BJT
這篇文章主要給大家介紹了關(guān)于MyBatis如何實(shí)現(xiàn)多表查詢(xún)(多對(duì)一、一對(duì)多)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)
多表查詢(xún):
學(xué)生表、班級(jí)表、課程表、班級(jí)課程表


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


多對(duì)多:
多對(duì)多其實(shí)就是分解為兩個(gè)一對(duì)多。

總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
-
基于Java的Spring框架來(lái)操作FreeMarker模板的示例
這篇文章主要介紹了基于Java的Spring框架來(lái)操作FreeMarker模板的示例,講到了用于進(jìn)行web模板文件的插值操作等例子,需要的朋友可以參考下 2016-03-03
-
SpringBoot整合SpringBoot-Admin實(shí)現(xiàn)監(jiān)控應(yīng)用功能
本文主要介紹如何整合Spring Boot Admin,以此監(jiān)控Springboot應(yīng)用,文中有相關(guān)的示例代碼供大家參考,需要的朋友可以參考下 2023-05-05
-
Java并發(fā)編程之阻塞隊(duì)列(BlockingQueue)詳解
這篇文章主要介紹了詳解Java阻塞隊(duì)列(BlockingQueue)的實(shí)現(xiàn)原理,阻塞隊(duì)列是Java util.concurrent包下重要的數(shù)據(jù)結(jié)構(gòu),有興趣的可以了解一下 2021-09-09
-
java反射機(jī)制的一些學(xué)習(xí)心得小結(jié)
這篇文章主要給大家介紹了關(guān)于java反射機(jī)制的一些學(xué)習(xí)心得,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧 2021-02-02
-
詳解Springboot整合ActiveMQ(Queue和Topic兩種模式)
這篇文章主要介紹了詳解Springboot整合ActiveMQ(Queue和Topic兩種模式),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧 2020-04-04
-
解決IDEA中多模塊下Mybatis逆向工程不生成相應(yīng)文件的情況
這篇文章主要介紹了解決IDEA中多模塊下Mybatis逆向工程不生成相應(yīng)文件的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧 2021-01-01
-
Java中實(shí)現(xiàn)WebSocket方法詳解
這篇文章主要介紹了Java中實(shí)現(xiàn)WebSocket方法詳解,WebSocket?是一種新型的網(wǎng)絡(luò)協(xié)議,它允許客戶(hù)端和服務(wù)器之間進(jìn)行雙向通信,可以實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)交互,需要的朋友可以參考下 2023-07-07
-
詳解Java如何優(yōu)雅的實(shí)現(xiàn)異常捕獲
在一個(gè)優(yōu)秀的項(xiàng)目中一定少不了對(duì)程序流程良好的異常捕獲與日志打印,所以本文主要為大家介紹了如何優(yōu)雅的實(shí)現(xiàn)異常捕獲與日志打印輸出,有需要的可以參考下 2023-09-09
最新評(píng)論
多表查詢(xún):
學(xué)生表、班級(jí)表、課程表、班級(jí)課程表
一對(duì)一:
一個(gè)學(xué)生只屬于一個(gè)班級(jí)。 查詢(xún):
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)簽解決一對(duì)一關(guān)聯(lián)查詢(xún),association標(biāo)簽可以使用的屬性如下:
- property:對(duì)象屬性的名稱(chēng)
- javaType:對(duì)象以昂屬性的類(lèi)型
- column:數(shù)據(jù)庫(kù)中字段的名稱(chēng)(也可能是起的別名)
public void testOne2One() { SqlSession sqlSession = MyBatisUtil. getSqlSession(); // 最終返回的是一個(gè)學(xué)生的集合,但是Student里面是有一個(gè)banji對(duì)象,里面保存了這個(gè)學(xué)生對(duì)應(yīng)的班級(jí)信息 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}
一對(duì)多:
多對(duì)多:
多對(duì)多其實(shí)就是分解為兩個(gè)一對(duì)多。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
基于Java的Spring框架來(lái)操作FreeMarker模板的示例
這篇文章主要介紹了基于Java的Spring框架來(lái)操作FreeMarker模板的示例,講到了用于進(jìn)行web模板文件的插值操作等例子,需要的朋友可以參考下2016-03-03SpringBoot整合SpringBoot-Admin實(shí)現(xiàn)監(jiān)控應(yīng)用功能
本文主要介紹如何整合Spring Boot Admin,以此監(jiān)控Springboot應(yīng)用,文中有相關(guān)的示例代碼供大家參考,需要的朋友可以參考下2023-05-05Java并發(fā)編程之阻塞隊(duì)列(BlockingQueue)詳解
這篇文章主要介紹了詳解Java阻塞隊(duì)列(BlockingQueue)的實(shí)現(xiàn)原理,阻塞隊(duì)列是Java util.concurrent包下重要的數(shù)據(jù)結(jié)構(gòu),有興趣的可以了解一下2021-09-09java反射機(jī)制的一些學(xué)習(xí)心得小結(jié)
這篇文章主要給大家介紹了關(guān)于java反射機(jī)制的一些學(xué)習(xí)心得,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02詳解Springboot整合ActiveMQ(Queue和Topic兩種模式)
這篇文章主要介紹了詳解Springboot整合ActiveMQ(Queue和Topic兩種模式),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04解決IDEA中多模塊下Mybatis逆向工程不生成相應(yīng)文件的情況
這篇文章主要介紹了解決IDEA中多模塊下Mybatis逆向工程不生成相應(yīng)文件的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01Java中實(shí)現(xiàn)WebSocket方法詳解
這篇文章主要介紹了Java中實(shí)現(xiàn)WebSocket方法詳解,WebSocket?是一種新型的網(wǎng)絡(luò)協(xié)議,它允許客戶(hù)端和服務(wù)器之間進(jìn)行雙向通信,可以實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)交互,需要的朋友可以參考下2023-07-07詳解Java如何優(yōu)雅的實(shí)現(xiàn)異常捕獲
在一個(gè)優(yōu)秀的項(xiàng)目中一定少不了對(duì)程序流程良好的異常捕獲與日志打印,所以本文主要為大家介紹了如何優(yōu)雅的實(shí)現(xiàn)異常捕獲與日志打印輸出,有需要的可以參考下2023-09-09