MyBatis-Plus實(shí)現(xiàn)多表聯(lián)查的方法實(shí)戰(zhàn)
前言
收獲大佬封裝的一個(gè)jar包,可以支持MyBatis-Plus多表聯(lián)查,特此分享。
一、引依賴
注意: mybatis plus version >= 3.4.0
<dependency> <groupId>com.github.yulichang</groupId> <artifactId>mybatis-plus-join</artifactId> <version>1.2.4</version> </dependency>
二、使用方法
- mapper繼承MPJBaseMapper (必選)
- service繼承MPJBaseService (可選)
- serviceImpl繼承MPJBaseServiceImpl (可選)
三、(實(shí)戰(zhàn))多表查詢
MPJLambdaWrapper<Map> mpjLambdaWrapper = new MPJLambdaWrapper(); mpjLambdaWrapper.select(ChatRecord::getId,ChatRecord::getRedMoney) .select(OfShopMembers::getUsablePoint) .select(ChatMultiList::getName) .leftJoin(OfShopMembers.class,OfShopMembers::getId,ChatRecord::getId) .leftJoin(ChatMultiList.class,ChatMultiList::getId,ChatRecord::getMultiId) .eq(ChatRecord::getMemberId,3213); List list = chatRecordMybatisJoinMapper.selectJoinList(Map.class, mpjLambdaWrapper);
對(duì)應(yīng)查詢語(yǔ)句
SELECT t.id, t.red_money, t1.username, t2.name FROM chat_record t LEFT JOIN of_shop_members t1 ON (t1.id = t.id) LEFT JOIN chat_multi_list t2 ON (t2.id = t.multi_id) WHERE (t.member_id = 3213)
參數(shù)說(shuō)明
1、select:表示查詢的指定字段,一個(gè)select只能查一個(gè)表的
2、leftJoin:
- 第一個(gè)參數(shù): 參與連表的實(shí)體類class
- 第二個(gè)參數(shù): 連表的ON字段,這個(gè)屬性必須是第一個(gè)參數(shù)實(shí)體類的屬性
- 第三個(gè)參數(shù): 參與連表的ON的另一個(gè)實(shí)體類屬性
3、默認(rèn)主表別名是t,其他的表別名以先后調(diào)用的順序使用t1,t2,t3…
四、(實(shí)戰(zhàn))多表分頁(yè)查詢
MPJLambdaWrapper<Map> mpjLambdaWrapper = new MPJLambdaWrapper(); mpjLambdaWrapper.select(ChatRecord::getId,ChatRecord::getRedMoney) .select(OfShopMembers::getUsablePoint) .select(ChatMultiList::getName) .leftJoin(OfShopMembers.class,OfShopMembers::getId,ChatRecord::getId) .leftJoin(ChatMultiList.class,ChatMultiList::getId,ChatRecord::getMultiId) .eq(ChatRecord::getMemberId,3213) .orderByDesc(ChatRecord::getAddTime); Page page = new Page(1,2); IPage<Map> mapIPage = chatRecordMybatisJoinMapper.selectJoinPage(page, Map.class, mpjLambdaWrapper);
對(duì)應(yīng)查詢語(yǔ)句
SELECT t.id, t.red_money, t1.usable_point, t2.name FROM chat_record t LEFT JOIN of_shop_members t1 ON (t1.id = t.id) LEFT JOIN chat_multi_list t2 ON (t2.id = t.multi_id) WHERE (t.member_id = 3213) ORDER BY t.add_time DESC LIMIT 2
總結(jié)
到此這篇關(guān)于MyBatis-Plus實(shí)現(xiàn)多表聯(lián)查的文章就介紹到這了,更多相關(guān)MyBatis-Plus多表聯(lián)查內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Mybatis-Plus多表關(guān)聯(lián)查詢的使用案例解析
- MyBatis多表關(guān)聯(lián)查詢的實(shí)現(xiàn)示例
- mybatis-plus多表聯(lián)查join的實(shí)現(xiàn)
- MyBatis-Plus多表聯(lián)查(動(dòng)態(tài)查詢)的項(xiàng)目實(shí)踐
- MyBatis實(shí)現(xiàn)多表聯(lián)查的詳細(xì)代碼
- MyBatis-Plus多表聯(lián)查的實(shí)現(xiàn)方法(動(dòng)態(tài)查詢和靜態(tài)查詢)
- Spring boot2基于Mybatis實(shí)現(xiàn)多表關(guān)聯(lián)查詢
- Mybatis-Plus 多表聯(lián)查分頁(yè)的實(shí)現(xiàn)代碼
- MyBatis-Flex實(shí)現(xiàn)多表聯(lián)查(自動(dòng)映射)
相關(guān)文章
Java進(jìn)階教程之運(yùn)行時(shí)類型識(shí)別RTTI機(jī)制
這篇文章主要介紹了Java進(jìn)階教程之運(yùn)行時(shí)類型識(shí)別RTTI機(jī)制,在Java運(yùn)行時(shí),RTTI維護(hù)類的相關(guān)信息,比如多態(tài)(polymorphism)就是基于RTTI實(shí)現(xiàn)的,需要的朋友可以參考下2014-09-09java中BigDecimal類型比較大小和絕對(duì)值計(jì)算方式
這篇文章主要介紹了java中BigDecimal類型比較大小和絕對(duì)值計(jì)算方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07Java跳過(guò)證書(shū)訪問(wèn)HTTPS詳細(xì)代碼示例
在訪問(wèn)HTTPS網(wǎng)站時(shí),Java會(huì)默認(rèn)檢查SSL證書(shū)是否有效,如果證書(shū)無(wú)效,則會(huì)阻止訪問(wèn),這篇文章主要給大家介紹了關(guān)于Java跳過(guò)證書(shū)訪問(wèn)HTTPS的相關(guān)資料,需要的朋友可以參考下2024-02-02Springmvc異常映射2種實(shí)現(xiàn)方法
這篇文章主要介紹了Springmvc異常映射2種實(shí)現(xiàn)方法以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。,需要的朋友可以參考下2020-05-05Spring Boot Admin監(jiān)控服務(wù)如何使用
這篇文章主要介紹了Spring Boot Admin監(jiān)控服務(wù)如何使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04Java運(yùn)算符的常見(jiàn)問(wèn)題與用法小結(jié)
這篇文章主要介紹了Java運(yùn)算符,結(jié)合實(shí)例形式總結(jié)分析了Java各種常見(jiàn)運(yùn)算符,包括算術(shù)運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符等相關(guān)功能、原理與使用技巧,需要的朋友可以參考下2020-04-04