首页
/
每日頭條
/
科技
/
mybatis雙表查詢
mybatis雙表查詢
更新时间:2025-11-28 22:25:22

mybatis雙表查詢? Mybatis-Plus缺省是不帶多表關聯功能,多表關聯需要作用mapper.xml寫SQL語句,或都在domain的mapper對象下使用@Select注解寫SQL語句,用後種方法根據自己的需要,花了一天時間學習研究,做了自己的第一個帶查詢條件的多表關聯SQL,特此記錄:,我來為大家科普一下關于mybatis雙表查詢?以下内容希望對你有幫助!

mybatis雙表查詢(Mybatis-plus帶查詢參數的多表關聯)1

mybatis雙表查詢

Mybatis-Plus缺省是不帶多表關聯功能,多表關聯需要作用mapper.xml寫SQL語句,或都在domain的mapper對象下使用@Select注解寫SQL語句,用後種方法根據自己的需要,花了一天時間學習研究,做了自己的第一個帶查詢條件的多表關聯SQL,特此記錄:

一、功能說明

當前有兩個表,第一表是景區基本信息,第二個表是景區的文檔記錄表,第二個表隻記錄了景區ID代碼,查管理第二個表時,需要使用第一個表的信息如景區名稱,景區所在行政區劃的編碼,并要根據表一的景區名稱,區劃編碼,表二的文件代碼、文件主題,景區編碼進行查詢。

二、實現方法

1、編寫VO對象

增加了個VO對象,擴展表二對象,同時需要将使用表一的字段添加上,形成一個完整的View對象,且續參數傳遞,查詢操作對使用這個VO對象。

@Data public class MapScenicFileVO extends MapScenicFile { private String scenicName; private String scenicAdcode; }

2、mapper對象擴展函數

添加表聯合功能,使用@select注解方式添加,這個表是采用join進行聯合,以便後面傳遞wrapper查詢條件組合。使用where子句聯合,後面傳遞參數時又會産生where子句,導緻查詢錯誤。

注意${ew.customSqlSegment}是傳遞自定義條件到SQL工廠。

/** * 景區文件聯合景區名稱查詢 * * @param wrapper 翻頁對象,可以作為 xml 參數直接使用,傳遞參數 Page 即自動分頁 * @return 列表 */ @Select("SELECT map_scenic_file.*,map_scenic.`name` as `scenic_name`,map_scenic.`adcode` as `scenic_adcode` FROM map_scenic_file left join map_scenic on map_scenic_file.scenic_id=map_scenic.id ${ew.customSqlSegment}") List<MapScenicFileVO> selectScenicFile(@Param(Constants.WRAPPER) Wrapper wrapper);

3、構建執行方法

在服務層執行函數中,根據需要構建組合查詢的QuerWrapper,注意Long和String空判斷方式不一樣。

public List<MapScenicFileVO> selectScenicFileList(MapScenicFileVO scenicFile) { QueryWrapper<MapScenicFileVO> scenicFileQueryWrapper = new QueryWrapper<>(); //構造查詢條,按文件ID,景區ID,景區名稱,文件主題構建查詢條件 if (scenicFile.getId() !=null ) { scenicFileQueryWrapper.eq("map_scenic_file.id",scenicFile.getId()); } if (scenicFile.getScenicId() !=null ) { scenicFileQueryWrapper.eq("map_scenic_file.scenic_id",scenicFile.getScenicId()); } if (StringUtils.isNotEmpty(scenicFile.getScenicName())) { scenicFileQueryWrapper.like("map_scenic.name",scenicFile.getScenicName()); } if (StringUtils.isNotEmpty(scenicFile.getsubject())) { scenicFileQueryWrapper.like("map_scenic_file.subject",scenicFile.getSubject()); } return baseMapper.selectScenicFile(scenicFileQueryWrapper); }

4、對應的Service接口,Controller統一改為使用VO對象即可,分頁方法我是采用pagahelper,下次再研究改為mybatis-plus的分而方法

三、前端

前端調用沒什麼區别一樣,注意一下VO對象的名稱,兩個表聯合有些名稱已用AS改過了,

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
透明筆記本鍵盤膜
透明筆記本鍵盤膜
還在給你的筆記本鍵盤用鍵盤膜嗎?那你就out了,快來看看新型的鍵盤貼膜吧。這些令人驚歎的鍵盤貼紙是由AnnaandSebastian創造的,它們能幫助你吧無聊的老筆記本電腦變成一個著名的藝術作品。下面一起來看一下這些藝術品吧!這種鍵盤貼被稱...
2025-11-28
四川國防科技大學分數線
四川國防科技大學分數線
國内目前高等教育機構共有3012所,高招工作也是按批次錄取的。軍校警校、藝術生和體育生為提前批次錄取,也是最早一批得到錄取結果的高考生。在各位考生和家長的印象裡,那些考上清華北大等985大學的學生,本應該是最令人羨慕的。可是受就業率影響,今...
2025-11-28
騰訊視頻怎麼登錄别人的會員微信
騰訊視頻怎麼登錄别人的會員微信
騰訊視頻怎麼登錄别人的會員微信?首先在手機裡下載安裝騰訊視屏app打開騰訊視屏之後進入首頁,點擊右下角的個人中心,現在小編就來說說關于騰訊視頻怎麼登錄别人的會員微信?下面内容希望能幫助到你,我們來一起看看吧!騰訊視頻怎麼登錄别人的會員微信首...
2025-11-28
華為鴻蒙讓小内存手機複活
華為鴻蒙讓小内存手機複活
說句實話,科技進步太快,我們的需求還沒有跟上,這句話用在電子産品領域,尤其是手機領域真的很貼切。現在都談什麼4nm,跑分要多少,分辨率要多少。但是,對絕大多數的人來說,用五年前的旗艦機足夠了,太精細的手機,大部分人也體驗不出來什麼好壞,即使...
2025-11-28
最新手機7.2英寸大屏
最新手機7.2英寸大屏
有俱友在後台留言,讓推薦大屏幕手機,給家裡老人用。先給這份孝心點個贊。接下來咱們聊聊大屏手機。自從三星GalaxyNote系列問世并取得巨大成功後,智能手機的屏幕就越來越大,從5.3英寸一直發展到7英寸以上。這兩年智能手機的屏幕尺寸逐漸穩定...
2025-11-28
Copyright 2023-2025 - www.tftnews.com All Rights Reserved