国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - Fluent Mybatis零xml配置實(shí)現(xiàn)復(fù)雜嵌套查詢(xún)

Fluent Mybatis零xml配置實(shí)現(xiàn)復(fù)雜嵌套查詢(xún)

2021-11-05 10:15tryternity Java教程

本文主要介紹了Fluent Mybatis零xml配置實(shí)現(xiàn)復(fù)雜嵌套查詢(xún),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

嵌套查詢(xún)

使用Fluent Mybatis, 不用手寫(xiě)一行xml文件或者M(jìn)apper文件,在dao類(lèi)中即可使用java api構(gòu)造中比較復(fù)雜的嵌套查詢(xún)。
讓dao的代碼邏輯和sql邏輯合二為一。

前置準(zhǔn)備,maven工程設(shè)置

參考文章 使用FluentMybatis實(shí)現(xiàn)mybatis動(dòng)態(tài)sql拼裝和fluent api語(yǔ)法

in (select 子查詢(xún))

 嵌套查詢(xún)表和主查詢(xún)表一樣的場(chǎng)景

.column().in( query-> {對(duì)query設(shè)置條件})

只需要在in里面引用一個(gè)lambda表達(dá)式,lambda表達(dá)式入?yún)⑹且粋€(gè)同名的Query。對(duì)這個(gè)入?yún)⒖梢栽O(shè)置where參數(shù)。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@DisplayName("嵌套查詢(xún)和主查詢(xún)的表是同一個(gè)")
@Test
void test_in_same_table_query() {
    UserQuery query = new UserQuery()
        .where.id().in(q -> q.selectId()
            .where.id().eq(3L).end())
        .and.userName().like("user")
        .and.age().gt(23).end();
 
    List list = mapper.listEntity(query);
    
    // 通過(guò)Test4J工具,驗(yàn)證sql語(yǔ)句
    db.sqlList().wantFirstSql()
        .eq("SELECT id, gmt_create, gmt_modified, is_deleted, account, age, avatar, birthday, bonus_points, e_mail, password, phone, status, user_name " +
            "FROM user WHERE id IN (SELECT id FROM user WHERE id = ?) " +
            "AND user_name LIKE ? " +
            "AND age > ?");
}

嵌套查詢(xún)表是另外表的場(chǎng)景
.column().in(queryClass, query-> {對(duì)query設(shè)置條件})

如果嵌套查詢(xún)的不是同表一張表,需要在in方法里面顯式聲明一下Query對(duì)象的class類(lèi)型, 后面用法同方法一。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@DisplayName("嵌套查詢(xún)和主查詢(xún)的表是不同")
@Test
void test_in_difference_table_query() {
    UserQuery query = new UserQuery()
        .selectId()
        .where.addressId().in(ReceivingAddressQuery.class, q -> q.selectId()
            .where.id().in(new int[]{1, 2}).end())
        .end();
    mapper.listEntity(query);
    
    // 通過(guò)Test4J工具,驗(yàn)證sql語(yǔ)句
    db.sqlList().wantFirstSql()
        .eq("SELECT id " +
            "FROM user " +
            "WHERE address_id IN (SELECT id FROM receiving_address WHERE id IN (?, ?))");
}

not in嵌套查詢(xún): 使用方法同 in 嵌套查詢(xún)

exists (select子查詢(xún))

嵌套查詢(xún)表和主查詢(xún)表一樣的場(chǎng)景
Exists查詢(xún)不需要指定字段,直接在query where中可以引用exists方法。

exists( query-> {對(duì)query設(shè)置條件})
如果exists查詢(xún)的表和主查詢(xún)一致,直接在lambada表達(dá)式中使用同類(lèi)型query參數(shù)即可,參數(shù)用法同in方法。

exists(queryClass, query-> {對(duì)query設(shè)置條件})
如果exists查詢(xún)的表和主查詢(xún)不一致,在exists方法第一個(gè)參數(shù)指定query類(lèi)型,第二個(gè)參數(shù)同方法1。

具體示例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@DisplayName("EXISTS查詢(xún)")
@Test
void test_exists_query() {
    UserQuery query = new UserQuery()
        .where.exists(ReceivingAddressQuery.class, q -> q
            .where.detailAddress().like("杭州")
            .and.id().apply(" = user.address_id").end())
        .end();
    mapper.listEntity(query);
    
    // 通過(guò)Test4J工具,驗(yàn)證sql語(yǔ)句
    db.sqlList().wantFirstSql()
        .eq("SELECT id, gmt_create, gmt_modified, is_deleted, account, address_id, age, avatar, birthday, bonus_points, e_mail, password, phone, status, user_name " +
                "FROM user " +
                "WHERE EXISTS (SELECT *" +
                "   FROM receiving_address" +
                "   WHERE detail_address LIKE ?" +
                "   AND id = user.address_id)",
            StringMode.SameAsSpace);
}

注:示例中的測(cè)試,是使用H2內(nèi)存數(shù)據(jù)庫(kù),你可以直接運(yùn)行,不需要你額外建表。
但使用Test4J執(zhí)行測(cè)試,你需要在加入vm參數(shù):-javaagent:/這里是你本地maven倉(cāng)庫(kù)地址/org/jmockit/jmockit/1.48/jmockit-1.48.jar

以我本機(jī)為例,具體參數(shù)如圖:

Fluent Mybatis零xml配置實(shí)現(xiàn)復(fù)雜嵌套查詢(xún)

Fluent Mybatis文檔&示例

Fluent Mybatis源碼, github

到此這篇關(guān)于Fluent Mybatis零xml配置實(shí)現(xiàn)復(fù)雜嵌套查詢(xún)的文章就介紹到這了,更多相關(guān)Fluent Mybatis 復(fù)雜嵌套查詢(xún)內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/tryternity/article/details/109062641

延伸 · 閱讀

精彩推薦
  • Java教程20個(gè)非常實(shí)用的Java程序代碼片段

    20個(gè)非常實(shí)用的Java程序代碼片段

    這篇文章主要為大家分享了20個(gè)非常實(shí)用的Java程序片段,對(duì)java開(kāi)發(fā)項(xiàng)目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關(guān)于小米推送Java代碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧...

    富貴穩(wěn)中求8032021-07-12
  • Java教程Java BufferWriter寫(xiě)文件寫(xiě)不進(jìn)去或缺失數(shù)據(jù)的解決

    Java BufferWriter寫(xiě)文件寫(xiě)不進(jìn)去或缺失數(shù)據(jù)的解決

    這篇文章主要介紹了Java BufferWriter寫(xiě)文件寫(xiě)不進(jìn)去或缺失數(shù)據(jù)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程Java實(shí)現(xiàn)搶紅包功能

    Java實(shí)現(xiàn)搶紅包功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)搶紅包功能,采用多線(xiàn)程模擬多人同時(shí)搶紅包,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程Java8中Stream使用的一個(gè)注意事項(xiàng)

    Java8中Stream使用的一個(gè)注意事項(xiàng)

    最近在工作中發(fā)現(xiàn)了對(duì)于集合操作轉(zhuǎn)換的神器,java8新特性 stream,但在使用中遇到了一個(gè)非常重要的注意點(diǎn),所以這篇文章主要給大家介紹了關(guān)于Java8中S...

    阿杜7482021-02-04
  • Java教程升級(jí)IDEA后Lombok不能使用的解決方法

    升級(jí)IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級(jí),尋思已經(jīng)有好久沒(méi)有升過(guò)級(jí)了。升級(jí)完畢重啟之后,突然發(fā)現(xiàn)好多錯(cuò)誤,本文就來(lái)介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程xml與Java對(duì)象的轉(zhuǎn)換詳解

    xml與Java對(duì)象的轉(zhuǎn)換詳解

    這篇文章主要介紹了xml與Java對(duì)象的轉(zhuǎn)換詳解的相關(guān)資料,需要的朋友可以參考下...

    Java教程網(wǎng)2942020-09-17
主站蜘蛛池模板: 欧美性猛交一区二区三区精品 | 欧美午夜一区二区三区免费大片 | 成人精品 | 91久久精品一区 | 欧美精品国产精品 | 欧美一区二区三区在线观看视频 | 日韩手机在线 | 99精品国产一区二区青青牛奶 | 丁香久久 | 国产精品久久久久久久久免费桃花 | 久久懂色精品99综一区合 | 久久精品国产亚洲 | 无码日韩精品一区二区免费 | 久久99精品国产.久久久久 | 国产精品久久久久aaaa | 爱操av | 成人免费一区二区三区视频网站 | 黄色短片免费看 | 日本不卡免费新一二三区 | 久久久久综合 | 国产一区二区久久 | 亚洲国产福利一区 | 精品少妇一区二区三区日产乱码 | 日韩精品电影 | 亚洲精品国产a久久久久久 中文字幕在线第一页 | 视频二区在线观看 | 精品国产欧美一区二区 | 国产一区av在线 | 色av成人 | 久久国产精品一区二区三区 | 人人天天操 | heyzo 在线| 色毛片 | 日韩看片 | 嘿嘿视频在线观看 | 日日色视频 | 国产精品综合 | av在线播放网 | 国产亚洲精品精品国产亚洲综合 | 久久网一区二区三区 | 欧美日韩综合在线 |