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)文章
詳談jpa中表的@OneToMany等關(guān)聯(lián)關(guān)系
這篇文章主要介紹了詳談jpa中表的@OneToMany等關(guān)聯(lián)關(guān)系,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12Spring Boot的應(yīng)用啟動與關(guān)閉的方法
本篇文章主要介紹了Spring Boot的應(yīng)用啟動與關(guān)閉的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12Java+element實(shí)現(xiàn)excel的導(dǎo)入和導(dǎo)出
本文主要介紹了Java+element實(shí)現(xiàn)excel的導(dǎo)入和導(dǎo)出,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04Spring?Boot如何通過Actuator顯示git和build的信息
這篇文章主要介紹了Spring?Boot通過Actuator顯示git和build的信息,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-01-01Springboot如何使用OSHI獲取和操作系統(tǒng)和硬件信息
這篇文章主要介紹了Springboot如何使用OSHI獲取和操作系統(tǒng)和硬件信息問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10