MyBatis-Plus多表關聯(lián)分頁方式
MyBatis-Plus多表關聯(lián)分頁
經(jīng)常會遇到列表頁要關聯(lián)幾個表查詢,主表只保存關聯(lián)表的ID,要顯示關聯(lián)表的ID,則需要查詢列表時一起查出來。
使用MyBatis-Plus可以使用多種方式聯(lián)合查詢,例如使用mapper 的 xml ,也可以使用 QueryWrapper 提供的方法查詢。
下面介紹最簡單
最便捷的方法,上代碼:
QueryWrapper<SpuInfoEntity> wrapper = new QueryWrapper<>();
wrapper.select("id","spu_name","weight","publish_status","create_time","update_time",
"(SELECT b.name FROM pms_brand b WHERE b.brand_id = pms_spu_info.brand_Id) AS brandName" ,
"(SELECT c.name FROM pms_category c WHERE c.cat_id = pms_spu_info.catalog_Id) AS categoryName");
IPage<SpuInfoEntity> page = this.page(
new Query<SpuInfoEntity>().getPage(params),
wrapper
);
return new PageUtils(page);使用 QueryWrapper 的 select()方法定義需要搜索的字段,將ID字段轉(zhuǎn)化為名稱字段,這樣就可以寫一次查詢,其他交給MySQL執(zhí)行。
這種方法比 Left JOIN 方法要多了幾毫秒
分頁每次讀10-20條也不影響。

分類和品牌都讀出來了。
以上方式有缺點,要查詢子表的字段時,無法使用語句where。
所以我認為最好的方式就是建立數(shù)據(jù)庫視圖表,通過查詢視圖表返回一個VO
總結(jié)
這些僅為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
springboot實現(xiàn)https雙向傳輸協(xié)議的示例代碼
本文主要介紹了springboot實現(xiàn)https雙向傳輸協(xié)議的示例代碼,包含配置證書和私鑰路徑、調(diào)用請求方法等步驟,具有一定的參考價值,感興趣的可以了解一下2025-03-03
java編譯時出現(xiàn)使用了未經(jīng)檢查或不安全的操作解決方法
這篇文章主要介紹了java編譯時出現(xiàn)使用了未經(jīng)檢查或不安全的操作的解決方法,需要的朋友可以參考下2014-03-03
SpringBoot應用是否存在MySQL連接泄漏問題的排查方法
這篇文章主要介紹了排查SpringBoot應用MySQL連接泄漏的方法,需檢查連接數(shù)、空閑連接,配置連接池參數(shù),確保資源關閉,并使用監(jiān)控工具如Actuator和Prometheus分析,需要的朋友可以參考下2025-06-06
SpringBoot使用RabbitMQ延時隊列(小白必備)
這篇文章主要介紹了SpringBoot使用RabbitMQ延時隊列(小白必備),詳細的介紹延遲隊列的使用場景及其如何使用,需要的小伙伴可以一起來了解一下2019-12-12
Spring?Boot中WebMvcConfig配置詳解及示例代碼
WebMvcConfig是一個配置類,它繼承了WebMvcConfigurationSupport,允許我們對SpringMVC進行更細粒度的控制,這篇文章主要給大家介紹了關于Spring?Boot中WebMvcConfig配置詳解及示例的相關資料,需要的朋友可以參考下2024-03-03
java在linux系統(tǒng)下開機啟動無法使用sudo命令的原因及解決辦法
每次開機自動啟動的java進程,頁面上的關機按鈕都無法實現(xiàn)關機功能,但是此時如果以chb賬號通過ssh登錄該服務器,手動殺掉tomcat進程,然后再重新啟動tomcat,頁面上的關機按鈕就有效了2013-08-08

