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

mybatis-plus QueryWrapper中or,and的使用及說明

 更新時(shí)間:2025年07月21日 15:50:09   作者:老葉童鞋  
使用MyBatis Plus QueryWrapper時(shí),因同時(shí)添加角色權(quán)限固定條件和多字段模糊查詢導(dǎo)致數(shù)據(jù)異常展示,排查發(fā)現(xiàn)OR邏輯覆蓋了權(quán)限條件,通過正確使用and()方法,將條件組合為AND邏輯,解決了權(quán)限過濾失效的問題

QueryWrapper中or,and使用

這兩天開發(fā)使用mybatisPlus的QueryWrapper組件時(shí)遇到一個(gè)問題,功能是開發(fā)一個(gè)列表,因?yàn)樯婕暗接脩艚巧珯?quán)限所以有個(gè)固定的查詢條件        

queryWrapper.eq("user_id", userInfo.getUserId);

列表中還要同時(shí)模糊查詢多個(gè)字段

所以我又增加了下面的語句

 if(StringUtils.isNotBlank(name)) {
        	queryWrapper.like("user_name", name)
                        .or()
                        .like("user_admin_name",name );;
        }

當(dāng)這兩個(gè)條件單獨(dú)出現(xiàn)的時(shí)候查詢都是沒有問題,但是當(dāng)兩個(gè)條件同時(shí)出現(xiàn),就會(huì)發(fā)現(xiàn)查詢不是當(dāng)前角色的數(shù)據(jù)也會(huì)展示出來。

經(jīng)過排查

發(fā)現(xiàn)queryWrapper 的where執(zhí)行語句是這樣的

where (user_id='1' and user_name like '%葉%' or user_admin_name like '%葉%')

這就導(dǎo)致只要where后面的條件存在or的話

只要滿足條件了,都會(huì)查詢出結(jié)果集,后來經(jīng)過查詢文檔,在QueryWrapper組件中找到了and()方法的使用,即可達(dá)到我們的期望值

queryWrapper.and(wq -> {
                // 拼接sql
                wq.like("user_name", name)
                   .or()
                   .like("user_admin_name",name);
                });
where (user_id='1' and (user_name like '%葉%' or user_admin_name like '%葉%'))

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java并發(fā)之Semaphore工具類r的全面解析

    Java并發(fā)之Semaphore工具類r的全面解析

    Semaphore 是 java.util.concurrent中非常有用的并發(fā)編程工具類,它通常被用于限制對某個(gè)資源或資源池的并發(fā)訪問數(shù)量,下面我們就來深入了解一下Semaphore的具體使用吧
    2024-02-02
  • mybatis查詢語句的背后揭秘

    mybatis查詢語句的背后揭秘

    這篇文章主要給大家介紹了關(guān)于mybatis查詢語句的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mybatis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • java清除u盤內(nèi)存卡里的垃圾文件示例

    java清除u盤內(nèi)存卡里的垃圾文件示例

    手機(jī)內(nèi)存卡空間被用光了,但又不知道哪個(gè)文件占用了太大,一個(gè)個(gè)文件夾去找又太麻煩,開發(fā)了個(gè)小程序把手機(jī)所有文件(包括路徑下所有層次子文件夾下的文件)進(jìn)行一個(gè)排序,這樣你就可以找出哪個(gè)文件占用了內(nèi)存太大了
    2014-02-02
  • 基于Spring框架由ConditionalOnMissingBean注解引發(fā)的問題

    基于Spring框架由ConditionalOnMissingBean注解引發(fā)的問題

    這篇文章主要介紹了基于Spring框架由ConditionalOnMissingBean注解引發(fā)的問題,具有很好
    2023-11-11
  • Spring Boot中實(shí)現(xiàn)定時(shí)任務(wù)應(yīng)用實(shí)踐

    Spring Boot中實(shí)現(xiàn)定時(shí)任務(wù)應(yīng)用實(shí)踐

    定時(shí)任務(wù)一般是項(xiàng)目中都需要用到的,可以用于定時(shí)處理一些特殊的任務(wù)。下面這篇文章主要給大家介紹了關(guān)于Spring Boot中實(shí)現(xiàn)定時(shí)任務(wù)應(yīng)用實(shí)踐的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2018-05-05
  • JDBC建立數(shù)據(jù)庫連接的代碼

    JDBC建立數(shù)據(jù)庫連接的代碼

    這篇文章主要為大家詳細(xì)介紹了JDBC建立數(shù)據(jù)庫連接的代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • springboot升級(jí)Tomcat版本的方法示例

    springboot升級(jí)Tomcat版本的方法示例

    本文主要介紹了springboot升級(jí)Tomcat版本的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • java中dart類詳細(xì)講解

    java中dart類詳細(xì)講解

    這篇文章主要介紹了dart類詳細(xì)講解,實(shí)例講解的很清晰,有對于這方面不太清楚的同學(xué)可以跟著學(xué)習(xí)下
    2021-02-02
  • Spring中@Autowired注解的原理詳解

    Spring中@Autowired注解的原理詳解

    這篇文章主要介紹了Spring中@Autowired注解的原理詳解,對于spring配置一個(gè)bean時(shí),如果需要給該bean提供一些初始化參數(shù),則需要通過依賴注入方式,所謂的依賴注入就是通過spring將bean所需要的一些參數(shù)傳遞到bean實(shí)例對象的過程,需要的朋友可以參考下
    2023-11-11
  • Java的常見批量操作方法及注意事項(xiàng)

    Java的常見批量操作方法及注意事項(xiàng)

    Java作為一種強(qiáng)大的編程語言,提供了多種方法來有效地進(jìn)行批量數(shù)據(jù)處理,這篇文章主要介紹了Java的常見批量操作方法及注意事項(xiàng)的相關(guān)資料,需要的朋友可以參考下
    2025-06-06

最新評論

红原县| 陇川县| 皮山县| 乌兰浩特市| 汉沽区| 东阿县| 湘乡市| 思茅市| 怀安县| 金湖县| 基隆市| 黔东| 临江市| 福州市| 宣汉县| 息烽县| 东丰县| 南汇区| 醴陵市| 菏泽市| 苏尼特左旗| 民勤县| 沙河市| 南部县| 济源市| 宁德市| 花莲县| 灵璧县| 芒康县| 泸州市| 伊金霍洛旗| 盖州市| 巴里| 中山市| 晋江市| 邛崃市| 秦皇岛市| 南木林县| 开原市| 徐闻县| 博乐市|