最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot實現(xiàn)聯(lián)表查詢的代碼詳解

 更新時間:2024年05月19日 16:59:02   作者:小小-菠蘿  
這篇文章主要介紹了SpringBoot中如何實現(xiàn)聯(lián)表查詢,文中通過代碼示例和圖文結(jié)合的方式講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下

1、要求

現(xiàn)在我們有這樣一張user表、xue_yuan表和ban_ji表

我們希望可以查詢到所有的用戶:要求顯示出學(xué)院名稱、老師名稱以及班級名稱而不是其id。但是若只查詢user表無法滿足我們的要求,因此需要聯(lián)表查詢;同時要求實現(xiàn)分頁和模糊查詢

2、解決辦法

2.1 SQL語句:可以直接創(chuàng)建一個新的SQL語句來實現(xiàn)

LEFT JOIN(左連接)   RIGHT JOIN(右連接) INNER JOIN(內(nèi)連接)

Left join:即左連接,是以左表為基礎(chǔ),根據(jù)ON后給出的兩表的條件將兩表連接起來。結(jié)果會將左表所有的查詢信息列出,而右表只列出ON后條件與左表滿足的部分。左連接全稱為左外連接,是外連接的一種。

?Right join:即右連接,是以右表為基礎(chǔ),根據(jù)ON后給出的兩表的條件將兩表連接起來。結(jié)果會將右表所有的查詢信息列出,而左表只列出ON后條件與右表滿足的部分。右連接全稱為右外連接,是外連接的一種。

Inner join:即內(nèi)連接,同時將兩表作為參考對象,根據(jù)ON后給出的兩表的條件將兩表連接起來。結(jié)果則是兩表同時滿足ON后的條件的部分才會列出。

SELECT a.username,b.id FROM USER AS a LEFT JOIN ban_ji AS b ON a.ban_ji_id=b.id

2.2 IPage對象中的屬性

1、首先在user的實體類中本來是沒有banJiName、xueYuanName、teacherName屬性的,但是我們有希望可以進(jìn)行展示,所以要用到一個注解

@TableFile

可以用來進(jìn)行映射關(guān)系

也可以用來添加一個數(shù)據(jù)庫表中不存在的字段

這里我們需要用到第二個屬性,在user實體類中進(jìn)行添加

 // 非數(shù)據(jù)庫列 班級名字
@TableFile(exist=fale)
private String banJiName;
// 非數(shù)據(jù)庫列 學(xué)院名字
@TableField(exist = false)
private String xueYuanName;
// 非數(shù)據(jù)庫列 老師名字
@TableField(exist = false)
private String teacherName;

2、進(jìn)行分頁和模糊查詢,我們這里將會得到一個IPage對象,通過其中的gerRecords()方可以得到所有的User對象

在這里我們可以獲得ban_ji_id,xue_yuan_id_teacher_id,我們可以創(chuàng)建banJiService,xueYuanService,teacherService通過這些屬性,我們可以直接在service對象中獲取其對應(yīng)的名稱

IPage<User> page=new Page<userVo.getPage(),userVo.getLimit()>
 
//創(chuàng)建條件構(gòu)造器
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
//進(jìn)行模糊查詢 :根據(jù)用戶名和手機號查詢    queryWrapper.like(StringUtils.isNotEmpty(userVo.getUsername()),"username",userVo.getUsername());
queryWrapper.like(StringUtils.isNotEmpty(userVo.getPhone()),"phone",userVo.getPhone());
//進(jìn)行查詢
userService.page(page,queryWrapper);
//此時在IPage對象page中已經(jīng)有了所有的數(shù)據(jù) page.getRecords()
 
 
for(User user :page.getRecords())
{
   //判斷ban_ji_name
   if(user.getBanJiId()!=null)
   {
      BanJi banji=banJiService.getById(user.getBanJiId);
      user.setBanJiName(banji.getName());
   }
   //為學(xué)院名稱賦值
   if(user.getXueYuanId()!=null)
   {
      XueYuan xueyuan = xueYuanService.getById(user.getXueYuanId());
      user.setXueYuanName(xueyuan.getName());
            }
   //為老師名稱賦值
   if(user.getTeacherId()!=null)
   {
      User teacher = userService.getById(user.getTeacherId());
      user.setTeacherName(teacher.getUsername());
    }
}

這里的DataView是我床架你的一個返回結(jié)果類

以上就是SpringBoot實現(xiàn)聯(lián)表查詢的代碼詳解的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot聯(lián)表查詢的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Struts2實現(xiàn)CRUD(增 刪 改 查)功能實例代碼

    Struts2實現(xiàn)CRUD(增 刪 改 查)功能實例代碼

    CRUD是Create(創(chuàng)建)、Read(讀?。?、Update(更新)和Delete(刪除)的縮寫,它是普通應(yīng)用程序的縮影。接下來通過本文給大家介紹Struts2實現(xiàn)CRUD(增 刪 改 查)功能實例代碼,感興趣的朋友一起看看吧
    2016-06-06
  • 詳解IDEA的快捷鍵及智能提示

    詳解IDEA的快捷鍵及智能提示

    這篇文章主要介紹了詳解IDEA的快捷鍵及智能提示,文中有非常詳細(xì)的快捷鍵及智能提示的說明,對正在使用IDEA的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • SpringMVC使用第三方組件實現(xiàn)文件上傳

    SpringMVC使用第三方組件實現(xiàn)文件上傳

    這篇文章主要介紹了SpringMVC使用第三方組件實現(xiàn)文件上傳,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • Java annotation元注解原理實例解析

    Java annotation元注解原理實例解析

    這篇文章主要介紹了Java annotation元注解原理實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • Java基礎(chǔ)教程之List集合的常用方法

    Java基礎(chǔ)教程之List集合的常用方法

    這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)教程之List集合的常用方法,在Java編程中List集合是一種常用的數(shù)據(jù)結(jié)構(gòu),用于存儲一組元素,有時候我們需要對List集合中的元素進(jìn)行分組操作,即將相同屬性或特征的元素歸類到一組,需要的朋友可以參考下
    2023-10-10
  • Mybatis使用Collection屬性的示例代碼

    Mybatis使用Collection屬性的示例代碼

    本文主要介紹了Mybatis使用Collection屬性的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Java8如何使用Lambda表達(dá)式簡化代碼詳解

    Java8如何使用Lambda表達(dá)式簡化代碼詳解

    這篇文章主要給大家介紹了關(guān)于Java8如何使用Lambda表達(dá)式簡化的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 淺談Java日志框架slf4j作用及其實現(xiàn)原理

    淺談Java日志框架slf4j作用及其實現(xiàn)原理

    日志記錄是應(yīng)用程序運行中必不可少的一部分。這篇文章主要介紹了淺談Java日志框架slf4j作用及其實現(xiàn)原理,SLF4J是一個日志框架抽象層,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • java中object類實例分析

    java中object類實例分析

    這篇文章主要介紹了java中object類實例分析,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • Mybatis?Plus分頁查詢返回total為0問題解決

    Mybatis?Plus分頁查詢返回total為0問題解決

    在使用MybatisPlus進(jìn)行分頁查詢時,可能會遇到返回的總條數(shù)(total)為0的問題,這通常是由于未配置MybatisPlus的分頁插件攔截器導(dǎo)致的,本文就來介紹一下解決方法,感興趣的可以了解一下
    2024-10-10

最新評論

闽清县| 桂林市| 曲阜市| 鄯善县| 苍南县| 宜章县| 竹溪县| 兰溪市| 临夏县| 分宜县| 新巴尔虎左旗| 利辛县| 宜宾市| 五华县| 饶河县| 印江| 康平县| 永昌县| 武城县| 秦安县| 缙云县| 阳朔县| 龙口市| 甘洛县| 榆社县| 西乌珠穆沁旗| 古浪县| 奎屯市| 横峰县| 沁阳市| 贵州省| 会宁县| 湖南省| 乐安县| 海宁市| 康乐县| 富源县| 纳雍县| 武定县| 安平县| 边坝县|