mybatis-plus多表查詢操作方法
在多表查詢返回結(jié)果時(shí):應(yīng)該如何處理呢?
第一種:在xml中使用 resultMap 處理,我本人不推薦,因?yàn)椋ㄈ绻粋€(gè)xml中如果有多個(gè)多張表查詢,就得寫多個(gè)resultMap與之對應(yīng))
第二種:返回結(jié)果用實(shí)體接收,但是返回的是多張表的字段,那就得寫一個(gè)實(shí)體中包含多張表的所有屬性才能接收,這里也不建議
第三種:也是準(zhǔn)備說的
1).我們查詢返回的結(jié)果無非是一個(gè)個(gè)的map類型,然后封裝進(jìn)入List中,看一下xml文件
<!-- 查詢超管列表 -->
<select id="managerList" resultType="map" >
SELECT m.*,r.rolename FROM
tbl_manager_info m
INNER JOIN
tbl_role_info r
ON
m.account=r.account
AND
m.type='0'
<if test="account!=null and account!='' ">
AND m.account=#{account}
</if>
ORDER BY
m.createdtime
DESC
</select>2). java代碼中的mapper,返回的類型我們設(shè)置為List<Map<String,Object>>即可,這里必須繼承BaseMapper類,才能實(shí)現(xiàn)分頁,注意了
public interface ManagerMapper extends BaseMapper<TblManagerInfo>{
//查詢超管列表
public List<Map<String,Object>> managerList(Pagination page,Map<String,Object> params) throws Exception;3). service層,記得繼承 IService
public interface ManagerService extends IService<TblManagerInfo>{
//查詢超管列表
public Page<Map<String,Object>> managerList(Page<Map<String,Object>> page,Map<String,Object> params)throws Exception;
}4).service實(shí)現(xiàn)類
@Service
public class ManagerServiceImpl extends ServiceImpl<ManagerMapper, TblManagerInfo> implements ManagerService {
@Autowired
private ManagerMapper managerDao;
@Override
public Page<Map<String, Object>> managerList(
Page<Map<String, Object>> page, Map<String, Object> params)
throws Exception {
return page.setRecords(managerDao.managerList(page, params));
}
}5).controller層
//超管列表
@RequestMapping("/admin/queryManagerList")
@ResponseBody
public ResultVo queryManagerList(HttpServletResponse response,HttpServletRequest request,
@RequestParam("page") Integer pageNo,
@RequestParam("limit") Integer pageSize,
@RequestParam(value="account",defaultValue="")String account
) throws Exception{
//這是我自己定義的封裝類,返回前端的整和
ResultVo rv=ResultVo.getResultVo();
try {
Map<String,Object> params=new WebUtils().getMap();
params.put("account", account);
//這個(gè)位置開始調(diào)用
Page<Map<String,Object>> page=new Page<Map<String,Object>>(pageNo, pageSize);
managerService.managerList(page,params);//這里就得到數(shù)據(jù)了
rv.setCount(page.getTotal());//往封裝類存入數(shù)據(jù)量
rv.setData(page.getRecords());//往封裝類存入數(shù)據(jù)
rv.setCode("0");
} catch (Exception e) {
rv.setCode("1");
e.printStackTrace();
}
return rv;
}到此這篇關(guān)于mybatis-plus多表查詢的文章就介紹到這了,更多相關(guān)mybatis-plus多表查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring?Boot?DevTools?全局配置學(xué)習(xí)指南
這篇文章主要介紹了Spring?Boot?DevTools?全局配置,注意包括直接重啟項(xiàng)目與devtools重啟的區(qū)別,DevTools配置,DevTools全局配置及trigger-file控制重啟行為的相關(guān)知識(shí),需要的朋友可以參考下2022-03-03
Java調(diào)用外接設(shè)備詳解(制卡機(jī))
這篇文章主要為大家詳細(xì)介紹了Java調(diào)用外接設(shè)備的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
SpringBoot之自定義banner使用代碼實(shí)例
這篇文章主要介紹了SpringBoot之自定義banner使用代碼實(shí)例,在Spring Boot中,你可以通過定制Banner來個(gè)性化你的應(yīng)用程序啟動(dòng)時(shí)的輸出,Banner是一個(gè)在應(yīng)用程序啟動(dòng)時(shí)顯示的ASCII藝術(shù)字形式的標(biāo)志,用于增加應(yīng)用程序的識(shí)別度和個(gè)性化,需要的朋友可以參考下2024-01-01
Java設(shè)計(jì)模式開發(fā)中使用觀察者模式的實(shí)例教程
這篇文章主要介紹了Java設(shè)計(jì)模式開發(fā)中使用觀察者模式的實(shí)例教程,松耦合和邏輯清晰的消息監(jiān)聽是觀察者模式的大特色,需要的朋友可以參考下2016-04-04
Javaweb會(huì)話跟蹤技術(shù)Cookie和Session的具體使用
本文主要介紹了Javaweb會(huì)話跟蹤技術(shù)Cookie&Session的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
IntelliJ IDEA AI Assistant 攜帶OpenCode保姆級(jí)
本文介紹了JetBrains官方AI插件AIAssistant的安裝、使用及接入本地客戶端的過程,通過安裝、測試、接入本地客戶端等步驟,詳細(xì)描述了使用過程中的注意事項(xiàng)和操作方法,感興趣的朋友跟隨小編一起看看吧2026-04-04
No ‘Access-Control-Allow-Origin‘ header is&nb
這篇文章主要介紹了No ‘Access-Control-Allow-Origin‘ header is present跨域及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02

