欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

QueryWrapper中查詢的坑及解決

 更新時間:2022年01月11日 10:27:37   作者:香豬腳  
這篇文章主要介紹了QueryWrapper中查詢的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。

QueryWrapper中查詢的坑

首先,先看代碼示例

List<Entity> list = testService.list(
? ? ? ? ? ? ? ? ? ? new LambdaQueryWrapper<Entity>()
? ? ? ? ? ? ? ? ? ? ? ? ? ? .eq(ObjectUtils.isNotEmpty(req.getParam()),Entity::getParam,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? req.getParam().substring(0,7).replace("-",""))
);

正常邏輯,當ObjectUtils.isNotEmpty(req.getParam())為false的時候,所執(zhí)行的SQL不會出現(xiàn)當前條件的字段;

然而,這種寫法如果當req.getParam()為""的時候,程序會出現(xiàn)數(shù)組下標越界的錯誤,雖然前面條件未成立,但是后面的代碼依然編譯執(zhí)行;

此處是本猿自己工作中遇到的一些小問題,發(fā)表出來,以便記錄,也給路過的伙伴提個醒。

QueryWrapper的查詢方法

  • Wrapper: 條件構造抽象類,最頂端父類
  • AbstractWrapper: 用于查詢條件封裝,生成 sql 的 where 條件
  • QueryWrapper: Entity 對象封裝操作類,不是用lambda語法
  • UpdateWrapper: Update 條件封裝,用于Entity對象更新操作
  • AbstractLambdaWrapper: Lambda 語法使用 Wrapper統(tǒng)一處理解析 lambda 獲取 column。
  • LambdaQueryWrapper: 看名稱也能明白就是用于Lambda語法使用的查詢Wrapper
  • LambdaUpdateWrapper: Lambda 更新封裝Wrapper

QueryWrapper

@Test
? ? public void squery() {
? ? ? ? //創(chuàng)建QueryWrapper 對象
? ? ? ? QueryWrapper<User> queryWrapper = new QueryWrapper<>();
? ? ? ? //ge gt le lt: 大于等于 大于 小于等于 小于
? ? ? ? queryWrapper.ge("age",29);
? ? ? ? List<User> users = userMapper.selectList(queryWrapper);
? ? ? ? System.out.println(users);
? ? ? ??
? ? ? ? //eq ne ?等于 不等于
? ? ? ? //between 介于查詢
? ? ? ? queryWrapper.between("age",28,30);
? ? ? ? List<User> users1 = userMapper.selectList(queryWrapper);
? ? ? ? System.out.println(users1);
? ? ? ??
? ? ? ? //模糊查詢
? ? ? ? queryWrapper.like("nam","l");
? ? ? ? queryWrapper.select("id","nam");
? ? ? ? List<User> users2 = userMapper.selectList(queryWrapper);
? ? ? ? System.out.println(users2);
? ? ? ??
? ? ? ? // orderByDesc 降序查找
? ? ? ? queryWrapper.orderByDesc;
? ? ? ??
? ? ? ? //last 在sql語句后面拼接
? ? ? ? queryWrapper.last("limit 1");
? ? }

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

相關文章

  • 詳解java中this.getClass()和super.getClass()的實例

    詳解java中this.getClass()和super.getClass()的實例

    這篇文章主要介紹了詳解java中this.getClass()和super.getClass()的實例的相關資料,需要的朋友可以參考下
    2017-08-08
  • 使用JAVA實現(xiàn)郵件發(fā)送功能的圖文教程

    使用JAVA實現(xiàn)郵件發(fā)送功能的圖文教程

    郵件發(fā)送其實是一個非常常見的需求,用戶注冊,找回密碼等地方,都會用到,下面這篇文章主要給大家介紹了關于使用JAVA實現(xiàn)郵件發(fā)送功能的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • Spring5中的WebClient使用方法詳解

    Spring5中的WebClient使用方法詳解

    這篇文章主要給大家介紹了關于Spring5中WebClient使用方法的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Spring5具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-11-11
  • Java中的異步回調問題

    Java中的異步回調問題

    這篇文章主要介紹了Java中的異步回調問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • JAVA集合框架專題

    JAVA集合框架專題

    這篇文章主要介紹了JAVA集合框架的相關知識,文中講解非常細致,幫助大家更好的理解學習JAVA框架,感興趣的朋友快來了解下
    2020-06-06
  • MyBatis攔截器:給參數(shù)對象屬性賦值的實例

    MyBatis攔截器:給參數(shù)對象屬性賦值的實例

    下面小編就為大家?guī)硪黄狹yBatis攔截器:給參數(shù)對象屬性賦值的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Spring中事件發(fā)布機制及流程詳解

    Spring中事件發(fā)布機制及流程詳解

    這篇文章主要介紹了Spring中事件發(fā)布機制及流程詳解,在分析源碼的過程中,也是大量使用了事件機制,在我分析的這篇博客中,有不少地方都運用了事件發(fā)布機制,所以本文的目的是從SpringBoot中學習到事件的發(fā)布流程,需要的朋友可以參考下
    2023-11-11
  • Java源碼難點突破Lambda表達式執(zhí)行原理

    Java源碼難點突破Lambda表達式執(zhí)行原理

    這篇文章主要為大家介紹了Java難點突破Lambda表達式執(zhí)行原理分析及示例的實現(xiàn)源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • 通過實例解析spring對象生命周期

    通過實例解析spring對象生命周期

    這篇文章主要介紹了通過實例解析spring對象生命周期,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • Java經(jīng)典面試題最全匯總208道(四)

    Java經(jīng)典面試題最全匯總208道(四)

    這篇文章主要介紹了Java經(jīng)典面試題最全匯總208道(四),本文章內容詳細,該模塊分為了六個部分,本次為第四部分,需要的朋友可以參考下
    2023-01-01

最新評論