Mybatis-Plus多表關(guān)聯(lián)查詢的使用案例解析
項(xiàng)目的目錄結(jié)構(gòu):
有以下四個(gè)包:
1、 controller控制層
2、dao層, 項(xiàng)目的目錄結(jié)構(gòu): 有以下四個(gè)包:

1、 controller控制層
2、dao層,接口
3、pojo,shiulilei
4、service服務(wù)層
有表結(jié)構(gòu)如下:
部門表:dept
![]()
員工表:emp
![]()
假設(shè)要查詢每個(gè)員工所屬的部門(或位置等信息),就需要將兩張表連接起來,使用SQL語句很簡(jiǎn)單(select * from emp,dept where emp.deptno=dept.deptno),但是在Java程序中怎么寫就比較復(fù)雜了。
首先配置pom.xml配置文件
1.pojo包中有dept和emp兩個(gè)實(shí)例類
1)dept
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("dept")
public class Dept implements Serializable {
private static final long serialVersionUID = 1L;
@TableId
private Integer deptno;
private String dname;
private String loc;
}2)emp
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("emp")
public class Emp implements Serializable {
private static final long serialVersionUID = 1L;
@TableId("empno")
private Integer empno;
private String ename;
private String job;
private Integer mgr;
private LocalDateTime hiredate;
private BigDecimal sal;
private BigDecimal comm;
private Integer deptno;
private Dept dept;//多表關(guān)聯(lián)需要查詢的數(shù)據(jù)
}在Emp類中多了一個(gè)Dept對(duì)象,這個(gè)對(duì)象包含了每個(gè)員工對(duì)應(yīng)部門的信息。
2.在Emp的mapper映射文件(.xml)中的mapper之間添加如下代碼
<mapper namespace="com.nb.spring_boot.api.dao.IEmpDao">
<resultMap id="empMapper" type="com.nb.spring_boot.api.pojo.Emp">
<association property="dept" column="deptno" select="com.nb.spring_boot.api.dao.IDeptDao.selectById"/>
</resultMap>
<select id="queryEmps" resultMap="empMapper">
select * from emp
</select>
</mapper>resultMap里的id屬性(empMapper)里面可以隨便寫一個(gè)變量名,可以不叫empMapper,select里的selectById在IDeptDao接口中要有該方法
Dept selectById(Integer deptno);
3.在Dept的mapper映射文件(.xml)中的mapper之間添加如下代碼
<select id="selectById" resultType="com.nb.spring_boot.api.pojo.Dept">
select * from dept where deptno=#{deptno}
</select>4.在IDeptDao接口中代碼如下
public interface IDeptDao extends BaseMapper<Dept> {
Dept selectById(Integer deptno);
}5.Emp的dao接口中和
public interface IEmpDao extends BaseMapper<Emp> {
IPage<Emp> queryEmps(IPage<Emp> page,@Param(Constants.WRAPPER) Wrapper<Emp> wrapper);
}6.IEmpService接口中
public interface IEmpService extends IService<Emp> {
IPage<Emp> queryEmps(IPage<Emp> result, QueryWrapper<Emp> wrapper);
}7.EmpserviceIml類中
public class EmpServiceImpl extends ServiceImpl<IEmpDao, Emp> implements IEmpService {
@Autowired
IEmpDao empDao;//這里報(bào)紅沒事
@Override
public IPage<Emp> queryEmps(IPage<Emp> result, QueryWrapper<Emp> wrapper) {
result = empDao.queryEmps(result, wrapper);
return result;
}
}8.接下來就是你自己在controller層寫方法
示例:
@RequestMapping("qemps")
IPage<Emp> queryEmps(@RequestParam(defaultValue = "1") int page,
@RequestParam(defaultValue = "5") int limit){
IPage<Emp> result = new Page<>(page, limit);
QueryWrapper<Emp> wrapper = new QueryWrapper<>();
wrapper.gt("sal", 1000);//查詢條件,工資大于1000,其他的可以研究一下,比如eq,le,like
return empService.queryEmps(result, wrapper);
}以上就是多表關(guān)聯(lián)查詢了~~~
到此這篇關(guān)于Mybatis-Plus多表關(guān)聯(lián)查詢的使用案例解析的文章就介紹到這了,更多相關(guān)Mybatis-Plus多表關(guān)聯(lián)查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 關(guān)于QueryWrapper,實(shí)現(xiàn)MybatisPlus多表關(guān)聯(lián)查詢方式
- Mybatis多表關(guān)聯(lián)查詢的實(shí)現(xiàn)(DEMO)
- Mybatis 一對(duì)多和多對(duì)一關(guān)聯(lián)查詢問題
- mybatis-plus多表關(guān)聯(lián)查詢功能的實(shí)現(xiàn)
- mybatis如何使用注解實(shí)現(xiàn)一對(duì)多關(guān)聯(lián)查詢
- MyBatis實(shí)踐之動(dòng)態(tài)SQL及關(guān)聯(lián)查詢
- MyBatis 三表外關(guān)聯(lián)查詢的實(shí)現(xiàn)(用戶、角色、權(quán)限)
- Mybatis關(guān)聯(lián)查詢之一對(duì)多和多對(duì)一XML配置詳解
- Mybatis實(shí)現(xiàn)一對(duì)一、一對(duì)多關(guān)聯(lián)查詢的方法(示例詳解)
- MyBatis的關(guān)聯(lián)查詢實(shí)現(xiàn)(一對(duì)一、一對(duì)多、多對(duì)多)
相關(guān)文章
Maven引入本地Jar包并打包進(jìn)War包中的方法
本篇文章主要介紹了Maven引入本地Jar包并打包進(jìn)War包中的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11
IDEA配置并運(yùn)行Scala項(xiàng)目的實(shí)現(xiàn)步驟
本文主要介紹了IDEA配置并運(yùn)行Scala項(xiàng)目的實(shí)現(xiàn)步驟,文中通過圖文示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-06-06
Java啟動(dòng)參數(shù)從基礎(chǔ)配置到高級(jí)調(diào)優(yōu)(最新整理)
文章系統(tǒng)講解Java啟動(dòng)參數(shù)分類、內(nèi)存管理配置、GC調(diào)優(yōu)策略及生產(chǎn)環(huán)境實(shí)踐,重點(diǎn)涵蓋標(biāo)準(zhǔn)/非標(biāo)準(zhǔn)參數(shù)、堆/元空間/直接內(nèi)存設(shè)置、G1/Parallel等回收器選擇,并提供壓縮指針、容器化部署等優(yōu)化建議,感興趣的朋友跟隨小編一起看看吧2025-08-08
Java中基于Shiro,JWT實(shí)現(xiàn)微信小程序登錄完整例子及實(shí)現(xiàn)過程
這篇文章主要介紹了Java中基于Shiro,JWT實(shí)現(xiàn)微信小程序登錄完整例子 ,實(shí)現(xiàn)了小程序的自定義登陸,將自定義登陸態(tài)token返回給小程序作為登陸憑證。需要的朋友可以參考下2018-11-11
Java16新特性record類使用細(xì)節(jié)示例詳解
這篇文章主要為大家介紹了Java16新特性record類使用細(xì)節(jié)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
Java 快速排序(QuickSort)原理及實(shí)現(xiàn)代碼
這篇文章主要介紹了Java 快速排序(QuickSort)原理及實(shí)現(xiàn)代碼,有需要的朋友可以參考一下2014-01-01

