亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

項目地址: GITHUB (本地下載

java mybatis 多表查詢

簡介

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

設(shè)計說明

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

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

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

使用說明

com.freedomen.multipselect 包放到你的項目中,使 com.freedomen.multipselect.mapper里的xml 要被掃描到,或手動配置, 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 的第一個參數(shù)是所要查找的字段
//${0} 或 ${user} 表是第一張表的所有字段 ${0}.userName或${user}.userName表示userName字段, 默認第一張表的字段全部都返回的。 ${}中間的參數(shù)可以是后面實體的下標,也可以是表名 如user、user_address

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

查找條件

  • eq: =
  • notEq: !=
  • like: LIKE (前置已經(jīng)加了 '%')
  • between: between
  • and: 改變連接方式為 AND練級(默認)
  • or: 改變 連接方式為 OR
  • division:括號
  • in: IN
  • notIn: NOT IN
  • notLike: NOT LIKE
  • ...等等
//實例好 查找實體后可以操作實體
//注意: 如何實體內(nèi)屬性有值 將會以 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, 默認為AND
 .notEq("orderSno", "123"); //或者 orderSno 不等于 '123'
 
multipleSelect
 .where("${1}") //哪張表接著用戶表 默認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", ...)

分頁

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

multipleService.mulSelect返回結(jié)果

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

邏輯刪除

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

總結(jié)

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

相關(guān)文章

  • Spring Boot集成Swagger2項目實戰(zhàn)

    Spring Boot集成Swagger2項目實戰(zhàn)

    在日常的工作中,我們往往需要給前端(WEB端、IOS、Android)或者第三方提供接口,這個時候我們就需要給他們提供一份詳細的API說明文檔。這篇文章我們就來分享一種API文檔維護的方式,即通過Swagger來自動生成Restuful API文檔
    2018-01-01
  • java代碼實現(xiàn)斗地主發(fā)牌功能

    java代碼實現(xiàn)斗地主發(fā)牌功能

    這篇文章主要介紹了java實現(xiàn)斗地主發(fā)牌功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 用java等語言仿360首頁拼音輸入全模糊搜索和自動換膚

    用java等語言仿360首頁拼音輸入全模糊搜索和自動換膚

    這篇文章主要為大家詳細介紹了仿360首頁支持拼音輸入全模糊搜索和自動換膚的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 讓Java后臺MySQL數(shù)據(jù)庫能夠支持emoji表情的方法

    讓Java后臺MySQL數(shù)據(jù)庫能夠支持emoji表情的方法

    最近開發(fā)的iOS項目因為需要用戶文本的存儲,自然就遇到了emoji等表情符號如何被mysql DB支持的問題。下面這篇文章主要介紹了關(guān)于讓Java后臺MySQL數(shù)據(jù)庫能夠支持emoji表情的方法,需要的朋友可以參考下。
    2017-03-03
  • 深入理解Spring的事務(wù)傳播行為

    深入理解Spring的事務(wù)傳播行為

    spring特有的事務(wù)傳播行為,spring支持7種事務(wù)傳播行為,確定客戶端和被調(diào)用端的事務(wù)邊界(說得通俗一點就是多個具有事務(wù)控制的service的相互調(diào)用時所形成的復(fù)雜的事務(wù)邊界控制),這篇文章主要給大家介紹了關(guān)于Spring事務(wù)傳播行為的相關(guān)資料,需要的朋友可以參考下。
    2018-02-02
  • Java中正則表達式的使用和詳解(下)

    Java中正則表達式的使用和詳解(下)

    這篇文章主要介紹了Java正則表達式的使用和詳解(下)的相關(guān)資料,包括常用正則表達式和正則表達式語法,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧
    2017-04-04
  • 教你怎么使用hadoop來提取文件中的指定內(nèi)容

    教你怎么使用hadoop來提取文件中的指定內(nèi)容

    發(fā)現(xiàn)有很多小伙伴不會使用hadoop來提取文件中的指定內(nèi)容,今天特地整理了這篇文章,文中有非常詳細的代碼示例,對不會這個方法的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • Java中的maven和gradle的比較與使用詳解

    Java中的maven和gradle的比較與使用詳解

    這篇文章主要介紹了maven和gradle的比較與使用,Maven使用基于XML的配置,Gradle采用了領(lǐng)域特定語言Groovy的配置,在Maven中要引入一個依賴,需要的朋友可以參考下
    2022-04-04
  • 通過實例分析java多態(tài)

    通過實例分析java多態(tài)

    這篇文章主要介紹了通過實例分析java多態(tài),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • hadoop是什么語言

    hadoop是什么語言

    Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。 用戶可以在不了解分布式底層細節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力進行高速運算和存儲
    2017-09-09

最新評論