欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis-Plus多表關(guān)聯(lián)查詢的使用案例解析

 更新時(shí)間:2023年05月13日 15:13:46   作者:頭不禿代碼不止  
這篇文章主要介紹了Mybatis-Plus多表關(guān)聯(lián)查詢的使用,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

項(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語句很簡單(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對象,這個(gè)對象包含了每個(gè)員工對應(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中的LinkedList集合詳解

    Java中的LinkedList集合詳解

    這篇文章主要介紹了Java中的LinkedList集合詳解,  LinkedList 是一個(gè)雙向鏈表結(jié)構(gòu)(JDK1.6 之前為循環(huán)鏈表,JDK1.7 取消了循環(huán)),在任意位置插入刪除都很方便,但是不支持隨機(jī)取值,每次都只能從一端開始遍歷,直到找到查詢的對象,然后返回,需要的朋友可以參考下
    2023-09-09
  • Java使用Deque實(shí)現(xiàn)堆棧的方法

    Java使用Deque實(shí)現(xiàn)堆棧的方法

    這篇文章主要介紹了Java使用Deque實(shí)現(xiàn)堆棧的方法,實(shí)例分析了java簡單實(shí)現(xiàn)堆棧的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • Java中十進(jìn)制和十六進(jìn)制的相互轉(zhuǎn)換方法

    Java中十進(jìn)制和十六進(jìn)制的相互轉(zhuǎn)換方法

    下面小編就為大家?guī)硪黄狫ava中十進(jìn)制和十六進(jìn)制的相互轉(zhuǎn)換方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • JProfiler11使用教程之JVM調(diào)優(yōu)問題小結(jié)

    JProfiler11使用教程之JVM調(diào)優(yōu)問題小結(jié)

    這篇文章主要介紹了JProfiler11使用教程之JVM調(diào)優(yōu),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Java?OpenCV圖像處理之SIFT角點(diǎn)檢測詳解

    Java?OpenCV圖像處理之SIFT角點(diǎn)檢測詳解

    SIFT,即尺度不變特征變換,是用于圖像處理領(lǐng)域的一種描述。這種描述具有尺度不變性,可在圖像中檢測出關(guān)鍵點(diǎn),是一種局部特征描述子。本文將詳細(xì)介紹一下Java?OpenCV圖像處理中的SIFT角點(diǎn)檢測,需要的可以參考一下
    2022-02-02
  • jenkins配置詳細(xì)指南(附j(luò)dk多個(gè)版本配置)

    jenkins配置詳細(xì)指南(附j(luò)dk多個(gè)版本配置)

    Jenkins是一款CICD(持續(xù)集成與持續(xù)交付)工具,Jenkins可以幫你在寫完代碼后,一鍵完成開發(fā)過程中的一系列自動(dòng)化部署的工作,這篇文章主要給大家介紹了關(guān)于jenkins配置的相關(guān)資料,文中還附j(luò)dk多個(gè)版本配置指南,需要的朋友可以參考下
    2024-02-02
  • Java命令行下Jar包打包小結(jié)

    Java命令行下Jar包打包小結(jié)

    這篇文章主要介紹了Java命令行下Jar包打包小結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • Java實(shí)現(xiàn)根據(jù)sql動(dòng)態(tài)查詢并下載數(shù)據(jù)到excel

    Java實(shí)現(xiàn)根據(jù)sql動(dòng)態(tài)查詢并下載數(shù)據(jù)到excel

    這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)根據(jù)sql動(dòng)態(tài)查詢并下載數(shù)據(jù)到excel的功能,文中的示例代碼講解詳細(xì),有需要的可以參考下
    2024-04-04
  • 談?wù)凧ava中對象,類和this,super,static關(guān)鍵字的使用

    談?wù)凧ava中對象,類和this,super,static關(guān)鍵字的使用

    對象:對象是類的一個(gè)實(shí)例,有狀態(tài)和行為。類:類是一個(gè)模板,它描述一類對象的行為和狀態(tài)。本文就來和大家聊聊Java中對象,類和關(guān)鍵字的使用,需要的可以參考一下
    2022-08-08
  • SpringBoot Security前后端分離登錄驗(yàn)證的實(shí)現(xiàn)

    SpringBoot Security前后端分離登錄驗(yàn)證的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot Security前后端分離登錄驗(yàn)證的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09

最新評論