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

Java?MyBatis實(shí)戰(zhàn)之QueryWrapper中and和or拼接技巧大全

 更新時間:2024年07月18日 10:36:21   作者:木頭左  
在Java中QueryWrapper是MyBatis-Plus框架中的一個查詢構(gòu)造器,它提供了豐富的查詢方法,其中包括and和or方法,可以用于構(gòu)建復(fù)雜的查詢條件,這篇文章主要給大家介紹了關(guān)于Java?MyBatis實(shí)戰(zhàn)之QueryWrapper中and和or拼接技巧的相關(guān)資料,需要的朋友可以參考下

一、引言

在Java Web開發(fā)中,MyBatis是一個非常流行的持久層框架。它通過XML或注解的方式將Java對象與數(shù)據(jù)庫表進(jìn)行映射,從而實(shí)現(xiàn)數(shù)據(jù)的增刪改查操作。在使用MyBatis的過程中,經(jīng)常會遇到需要拼接復(fù)雜查詢條件的場景,這時候就需要使用到QueryWrapper這個強(qiáng)大的工具類。本文將詳細(xì)介紹如何在MyBatis的QueryWrapper中使用and和or進(jìn)行條件拼接,幫助大家更好地應(yīng)對實(shí)際項(xiàng)目中的各種需求。

二、QueryWrapper簡介

QueryWrapper是MyBatis提供的一個用于構(gòu)建查詢條件的類,它可以方便地實(shí)現(xiàn)各種復(fù)雜的查詢條件組合。QueryWrapper提供了豐富的方法,如eq(等于)、ne(不等于)、like(模糊查詢)、between(區(qū)間查詢)等,可以滿足各種查詢需求。同時,QueryWrapper還支持and和or兩種邏輯運(yùn)算符,可以幫助輕松實(shí)現(xiàn)多條件組合查詢。

三、and運(yùn)算符的使用

1. and運(yùn)算符的基本用法

在QueryWrapper中,and運(yùn)算符用于連接兩個或多個查詢條件,表示這些條件都需要滿足。例如,想要查詢年齡大于18歲且性別為男的所有用戶,可以使用如下代碼:

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.gt("age", 18).eq("gender", "male");

這里,gt("age", 18)表示年齡大于18歲,eq("gender", "male")表示性別為男。使用and運(yùn)算符將這兩個條件連接起來,表示同時滿足這兩個條件。

2. and運(yùn)算符鏈?zhǔn)秸{(diào)用

QueryWrapper支持鏈?zhǔn)秸{(diào)用,可以將多個查詢條件連接起來,使代碼更加簡潔。例如,想要查詢年齡在18到30歲之間、性別為女的所有用戶,可以使用如下代碼:

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.ge("age", 18).lt("age", 30).eq("gender", "female");

這里,ge("age", 18)表示年齡大于等于18歲,lt("age", 30)表示年齡小于等于30歲。使用and運(yùn)算符將這三個條件連接起來,表示同時滿足這三個條件。

3. and運(yùn)算符嵌套使用

有時候,需要在一個查詢條件中嵌套另一個查詢條件,這時候就可以使用and運(yùn)算符。例如,想要查詢姓名為張三且年齡在25到35歲之間的所有用戶,可以使用如下代碼:

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "張三").and(i -> i.ge("age", 25).lt("age", 35));

這里,使用了lambda表達(dá)式來實(shí)現(xiàn)嵌套的and條件。首先使用eq方法設(shè)置姓名為張三的條件,然后使用and方法連接一個匿名內(nèi)部類實(shí)現(xiàn)的年齡范圍查詢條件。注意,這里的and方法是靜態(tài)方法,可以直接調(diào)用。

四、or運(yùn)算符的使用

or運(yùn)算符用于連接兩個或多個查詢條件,表示其中一個條件滿足即可。例如,想要查詢年齡小于18歲或性別為男的所有用戶,可以使用如下代碼:

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.lt("age", 18).or().eq("gender", "male");

這里,使用了兩次or方法來實(shí)現(xiàn)兩個條件的or關(guān)系。第一次or方法將年齡小于18歲的條件添加到QueryWrapper中,第二次or方法將性別為男的條件添加到QueryWrapper中。需要注意的是,or方法只能用于非空的集合類型參數(shù),所以在這里將or方法鏈?zhǔn)秸{(diào)用了兩次。如果只有一個非空的集合類型參數(shù),只需要調(diào)用一次or方法即可。

附:QueryWrapper中or和and并列使用

目的:想要實(shí)現(xiàn)一個sql中 某倆個字段是or的關(guān)系,其他字段查詢是并列的關(guān)系。

實(shí)際:

1、如果直接使用or 和and ,and會作為一個整體條件,與or并列,查詢出來的結(jié)果就不是我們想要的

2、可以把or里面的條件包起來,那么or里的就作為一個整體,和and的數(shù)據(jù)并列

3.那么在QueryWrapper中如何用代碼實(shí)現(xiàn)呢?如圖

QueryWrapper<GgsyxtKtzry> qw = new QueryWrapper<>();
        qw.lambda().eq(GgsyxtKtzry::getScbj, 0)
                .and(wreapper->{
                    wreapper.eq(GgsyxtKtzry::getZh, updateVO.getZh())
                    .or().eq(GgsyxtKtzry::getLxdh, updateVO.getLxdh());
                })
                .ne(GgsyxtKtzry::getUuid, updateVO.getUuid());

總結(jié)與展望

本文詳細(xì)介紹了如何在MyBatis的QueryWrapper中使用and和or進(jìn)行條件拼接,幫助大家更好地應(yīng)對實(shí)際項(xiàng)目中的各種需求。在實(shí)際開發(fā)中,可能還會遇到其他更復(fù)雜的查詢條件組合,這時候可以通過閱讀MyBatis官方文檔或參考其他優(yōu)秀博客文章來學(xué)習(xí)更多的技巧和方法。希望本文能對大家有所幫助,祝大家在編程路上越走越遠(yuǎn)!

到此這篇關(guān)于Java MyBatis實(shí)戰(zhàn)之QueryWrapper中and和or拼接技巧大全的文章就介紹到這了,更多相關(guān)MyBatis QueryWrapper中and和or拼接內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 搭建Springboot框架并添加JPA和Gradle組件的方法

    搭建Springboot框架并添加JPA和Gradle組件的方法

    這篇文章主要介紹了搭建Springboot框架并添加JPA和Gradle組件的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • 使用Jenkins一鍵打包部署SpringBoot項(xiàng)目的步驟詳解

    使用Jenkins一鍵打包部署SpringBoot項(xiàng)目的步驟詳解

    任何簡單操作的背后,都有一套相當(dāng)復(fù)雜的機(jī)制,本文將以SpringBoot應(yīng)用的在Docker環(huán)境下的打包部署為例,詳細(xì)講解如何使用Jenkins一鍵打包部署SpringBoot應(yīng)用,文中通過圖文結(jié)合講解的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • 詳解spring boot實(shí)現(xiàn)websocket

    詳解spring boot實(shí)現(xiàn)websocket

    這篇文章主要介紹了詳解spring boot實(shí)現(xiàn)websocket,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Springboot處理配置CORS跨域請求時碰到的坑

    Springboot處理配置CORS跨域請求時碰到的坑

    本篇文章介紹了我在開發(fā)過程中遇到的一個問題,以及解決該問題的過程及思路,通讀本篇對大家的學(xué)習(xí)或工作具有一定的價值,需要的朋友可以參考下
    2021-09-09
  • 利用Java實(shí)現(xiàn)一個WAV文件信息解析與打印工具

    利用Java實(shí)現(xiàn)一個WAV文件信息解析與打印工具

    在日常音頻處理工作中,我們經(jīng)常會遇到各種音頻文件格式,其中最經(jīng)典的無損音頻格式之一就是 WAV,所以本文將分享一個純 Java 實(shí)現(xiàn)的 WAV 文件信息解析工具,能夠從文件頭到數(shù)據(jù)塊完整打印 WAV 文件信息,需要的朋友可以參考下
    2025-11-11
  • java工具類SendEmailUtil實(shí)現(xiàn)發(fā)送郵件

    java工具類SendEmailUtil實(shí)現(xiàn)發(fā)送郵件

    這篇文章主要為大家詳細(xì)介紹了java工具類SendEmailUtil實(shí)現(xiàn)發(fā)送郵件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • idea統(tǒng)計代碼行數(shù)Statistic的步驟詳解

    idea統(tǒng)計代碼行數(shù)Statistic的步驟詳解

    這篇文章主要介紹了idea統(tǒng)計代碼行數(shù)Statistic的步驟詳解,本文通過使用Statistic插件操作的,通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • java中關(guān)于控件JTextArea的幾個方法

    java中關(guān)于控件JTextArea的幾個方法

    這篇文章主要介紹了java中關(guān)于控件JTextArea的幾個方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • java項(xiàng)目idea構(gòu)建總是報內(nèi)存溢出怎么解決詳析

    java項(xiàng)目idea構(gòu)建總是報內(nèi)存溢出怎么解決詳析

    這篇文章主要介紹了java項(xiàng)目idea構(gòu)建總是報內(nèi)存溢出怎么解決的相關(guān)資料,方法包括增加IDEA內(nèi)存分配、調(diào)整項(xiàng)目編譯設(shè)置、配置Gradle構(gòu)建內(nèi)存、優(yōu)化項(xiàng)目結(jié)構(gòu)、清理不必要的依賴、使用命令行構(gòu)建、更新IDEA和JDK、清理IDEA緩存和禁用不必要的插件,需要的朋友可以參考下
    2025-03-03
  • 關(guān)于protected修飾符詳解-源于Cloneable接口

    關(guān)于protected修飾符詳解-源于Cloneable接口

    這篇文章主要介紹了protected修飾符詳解-源于Cloneable接口,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11

最新評論

资兴市| 岱山县| 潞西市| 于田县| 定远县| 贵州省| 双桥区| 太白县| 肥城市| 汤阴县| 四子王旗| 新郑市| 莒南县| 浠水县| 驻马店市| 白银市| 吴忠市| 皋兰县| 江陵县| 怀柔区| 和田县| 武城县| 富川| 萨嘎县| 尼玛县| 桑日县| 灵璧县| 清水河县| 阿克陶县| 康乐县| 枝江市| 石嘴山市| 无棣县| 伊金霍洛旗| 鄂伦春自治旗| 新巴尔虎右旗| 察隅县| 乌海市| 林芝县| 女性| 恩平市|