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

結(jié)合mybatis-plus實(shí)現(xiàn)簡(jiǎn)單不需要寫(xiě)sql的多表查詢

 更新時(shí)間:2019年09月09日 09:34:59   作者:楊一一  
這篇文章主要給大家介紹了關(guān)于結(jié)合mybatis-plus實(shí)現(xiàn)簡(jiǎn)單不需要寫(xiě)sql的多表查詢的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mybatis-plus具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

項(xiàng)目地址: GITHUB (本地下載

java mybatis 多表查詢

簡(jiǎn)介

實(shí)現(xiàn)簡(jiǎn)單的實(shí)體類操作多表,  首先你的項(xiàng)目是使用了mybatis-plus 才可以使用

設(shè)計(jì)說(shuō)明

  • 如何關(guān)聯(lián)表?

找第一張表注解為 TableId (mybatis-plus 注解)的屬性名, 到每二張表找同樣的屬性名, 如果沒(méi)找到,反過(guò)來(lái)找,如果還沒(méi)找到,挨個(gè)屬性找。以此類推,實(shí)現(xiàn)關(guān)聯(lián)的前提條件是 主從表的關(guān)聯(lián)例名必須一樣

// user 表
@TableId
private Integer userId
// address 表
@TableId
private Integer addressId
private Integer userId

使用說(shuō)明

com.freedomen.multipselect 包放到你的項(xiàng)目中,使 com.freedomen.multipselect.mapper里的xml 要被掃描到,或手動(dòng)配置, com.freedomen.multipselect.service也要被發(fā)現(xiàn)

//引入service
@Autowired
private MultipleService multipleService;
//表關(guān)聯(lián), 關(guān)聯(lián)用戶表和地址表,查找 用戶表的所有字段和地址表的所有字段
MultipleSelect multipleSelect = MultipleSelect.newInstance("${1}", new User(), new Address());

multipleSelect
 .where("${0}")
 .like("userName", "張三");

multipleService.mulSelect(multipleSelect);
 

查找字段

//MultipleSelect.newInstance 的第一個(gè)參數(shù)是所要查找的字段
//${0} 或 ${user} 表是第一張表的所有字段 ${0}.userName或${user}.userName表示userName字段, 默認(rèn)第一張表的字段全部都返回的。 ${}中間的參數(shù)可以是后面實(shí)體的下標(biāo),也可以是表名 如user、user_address

//下面是要訂單表的所有信息 和用戶的姓名與號(hào)碼 和地址
MultipleSelect.newInstance("${1}.userName,${1}.userPhone,${2}", new Orders(), new User(), new Address());

查找條件

  • eq: =
  • notEq: !=
  • like: LIKE (前置已經(jīng)加了 '%')
  • between: between
  • and: 改變連接方式為 AND練級(jí)(默認(rèn))
  • or: 改變 連接方式為 OR
  • division:括號(hào)
  • in: IN
  • notIn: NOT IN
  • notLike: NOT LIKE
  • ...等等
//實(shí)例好 查找實(shí)體后可以操作實(shí)體
//注意: 如何實(shí)體內(nèi)屬性有值 將會(huì)以 eq方式and連接做為where 條件
MultipleSelect multipleSelect = MultipleSelect.newInstance("${1}.userName,${1}.userPhone,${2}", new Orders(), new User(), new Address());

multipleSelect
 .where("${0}") //哪張表
 .eq("ordersId", 1) //并且 訂單id = 1
 .like("ordersName", "cmcc") //并且 訂單名稱 like ''%cmcc'
 .or() //改變后續(xù)操作關(guān)系為 OR, 默認(rèn)為AND
 .notEq("orderSno", "123"); //或者 orderSno 不等于 '123'
 
multipleSelect
 .where("${1}") //哪張表接著用戶表 默認(rèn)and連接 可以 .or()改為 OR
 .in("userId", [1, 2, 3]); // 并且userId in [1, 2, 3]
 
multipleSelect
 .where("${2}")
 .or()
 .like("adressDetails", "江蘇"); //或者 地址 like '江蘇'

multipleService.mulSelect(multipleSelect); //查詢

排序

//MultipleSelect.setOrderBy(...columns)
MultipleSelect.setOrderBy("${1}.ordersName desc", "${2}.userId asc", ...)

分頁(yè)

//MultipleSelect.setPage(pageNo, pageSize);
MultipleSelect.setPage(1, 15); //第一頁(yè) 每頁(yè) 15條

multipleService.mulSelect返回結(jié)果

//MultipleResult
/* 原型
 private List<Map<String, Object>> data; //結(jié)果數(shù)據(jù)
 private Integer pageNo;  //如果設(shè)置了分頁(yè) 會(huì)有
 private Integer pageSize;  //如果設(shè)置了分頁(yè) 會(huì)有
 private Integer total;  //如果設(shè)置了分頁(yè) 會(huì)有
*/

邏輯刪除

//默認(rèn)是讀取 mybatis-plus 的 TableLogic 注解 0 未刪除,
//如果不是用 0 表示未刪除, 可以修改 MultipleSelect 的 setCustomWhere 方法中的下面這段中的 0 
 
if (logic != null)
 sb.append(" AND ")
 .append(te.getNickName())
 .append(".")
 .append(logic)
 .append(" = ")
 .append("0");

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • 深入同步訪問(wèn)共享的可變數(shù)據(jù)分析

    深入同步訪問(wèn)共享的可變數(shù)據(jù)分析

    本篇文章是對(duì)同步訪問(wèn)共享的可變數(shù)據(jù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • Java對(duì)中文進(jìn)行排序的實(shí)現(xiàn)示例

    Java對(duì)中文進(jìn)行排序的實(shí)現(xiàn)示例

    工作中,我們經(jīng)常會(huì)遇到需要進(jìn)行各種排序的需求,本文主要介紹了Java對(duì)中文進(jìn)行排序的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • Java8加java10等于Java18的版本查看及特性詳解

    Java8加java10等于Java18的版本查看及特性詳解

    這篇文章主要為大家介紹了Java?8加java10等于Java18的各個(gè)版本要點(diǎn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Java內(nèi)省之Introspector解讀

    Java內(nèi)省之Introspector解讀

    這篇文章主要介紹了Java內(nèi)省之Introspector解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • MyBatis詳細(xì)執(zhí)行流程的全紀(jì)錄

    MyBatis詳細(xì)執(zhí)行流程的全紀(jì)錄

    這篇文章主要給大家介紹了關(guān)于MyBatis詳細(xì)執(zhí)行流程的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Java實(shí)現(xiàn)日志文件監(jiān)聽(tīng)并讀取相關(guān)數(shù)據(jù)的方法實(shí)踐

    Java實(shí)現(xiàn)日志文件監(jiān)聽(tīng)并讀取相關(guān)數(shù)據(jù)的方法實(shí)踐

    本文主要介紹了Java實(shí)現(xiàn)日志文件監(jiān)聽(tīng)并讀取相關(guān)數(shù)據(jù)的方法實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • MinIO學(xué)習(xí)指南看這一篇就夠了

    MinIO學(xué)習(xí)指南看這一篇就夠了

    本文介紹了對(duì)象存儲(chǔ)、服務(wù)器磁盤(pán)和分布式文件系統(tǒng)的基本概念和區(qū)別,重點(diǎn)講解了MinIO的安裝、配置和基本操作,以及如何在SpringBoot項(xiàng)目中集成MinIO,感興趣的朋友一起看看吧
    2025-02-02
  • 模擬Mybatis的實(shí)現(xiàn)方法

    模擬Mybatis的實(shí)現(xiàn)方法

    本文通過(guò)實(shí)例代碼給大家分享了模擬Mybatis的實(shí)現(xiàn)方法,需要的朋友參考下吧
    2017-09-09
  • Java?18?新特性之Web服務(wù)器?jwebserver功能

    Java?18?新特性之Web服務(wù)器?jwebserver功能

    JEP?408:?Simple?Web?Server,是這次Java?18推出的一個(gè)比較獨(dú)立的全新功能點(diǎn)。我們可以通過(guò)命令行工具來(lái)啟動(dòng)一個(gè)提供靜態(tài)資源訪問(wèn)的迷你Web服務(wù)器,本文通過(guò)一個(gè)構(gòu)建HTML頁(yè)面的例子,來(lái)嘗試一下jwebserver的功能
    2022-04-04
  • 8種常見(jiàn)的接口請(qǐng)求重試方法總結(jié)

    8種常見(jiàn)的接口請(qǐng)求重試方法總結(jié)

    在跨境業(yè)務(wù)中,可能第三方的服務(wù)器分布在世界的各個(gè)角落,所以請(qǐng)求三方接口的時(shí)候,難免會(huì)遇到一些網(wǎng)絡(luò)問(wèn)題,這時(shí)候需要加入重試機(jī)制了,下面小編就給大家分享幾個(gè)接口重試的寫(xiě)法吧
    2023-11-11

最新評(píng)論

拉孜县| 华安县| 遂平县| 呼伦贝尔市| 河间市| 顺义区| 浪卡子县| 青州市| 自治县| 灵璧县| 乐清市| 咸阳市| 商城县| 威远县| 阜南县| 吉木乃县| 周口市| 兴业县| 海盐县| 随州市| 大荔县| 张家界市| 山东省| 晋州市| 阿合奇县| 西和县| 海淀区| 水城县| 仁化县| 阳江市| 南皮县| 桐庐县| 麻江县| 驻马店市| 庄浪县| 平原县| 海盐县| 易门县| 海伦市| 绥棱县| 托克托县|