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

LambdaUpdateWrapper的使用及說明

 更新時間:2026年04月10日 10:49:28   作者:Flying_Fish_Xuan  
`LambdaUpdateWrapper`是MyBatis-Plus用于構(gòu)建更新操作條件的便捷工具,支持Lambda表達式簡化條件編寫,提供多種比較和聚合查詢方法,通過示例展示了如何使用`eq`、`like`、`count`等方法構(gòu)建查詢條件并執(zhí)行更新操作

LambdaUpdateWrapper的使用

`LambdaUpdateWrapper` 是 MyBatis-Plus 框架中的一個類,用于構(gòu)建數(shù)據(jù)庫更新操作的條件查詢對象。它提供了一種使用Lambda表達式來構(gòu)建查詢條件的便捷方式。

`LambdaUpdateWrapper` 類是 `UpdateWrapper` 類的子類,它使用了Java 8的Lambda表達式語法來簡化查詢條件的編寫過程。通過使用Lambda表達式,你可以直接引用實體類的屬性名而不需要手動編寫字符串常量,這樣可以提高代碼的可讀性和維護性。

以代碼示例來解釋:

LambdaUpdateWrapper<MessageTemplate> templateWrapper = new LambdaUpdateWrapper<>();

在這個例子中,我們創(chuàng)建了一個 `LambdaUpdateWrapper` 對象,并指定了泛型類型為 `MessageTemplate`,表示該條件查詢對象用于更新 `MessageTemplate` 實體類對應的數(shù)據(jù)庫表。

通過 `LambdaUpdateWrapper` 對象,你可以使用內(nèi)置的方法來構(gòu)建查詢條件,

比較運算符(`eq`、`ne`、`gt`、`lt`、`ge`、`le`)

比較運算符是用于比較兩個值的符號,常用于條件語句和循環(huán)語句中。

以下是每個比較運算符在Java中的含義:

  • eq:等于,表示兩個值相等。
  • ne:不等于,表示兩個值不相等。
  • gt:大于,表示第一個值比第二個值大。
  • lt:小于,表示第一個值比第二個值小。
  • ge:大于等于,表示第一個值大于等于第二個值。
  • le:小于等于,表示第一個值小于等于第二個值。

在MyBatis Plus中,用于構(gòu)建查詢條件的Wrapper類提供了對應的方法來使用比較運算符。

例如,使用eq比較運算符的例子:

// 查詢年齡等于18的用戶信息
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("age", 18);
List<User> userList = userMapper.selectList(wrapper);

使用gele比較運算符的例子:

// 查詢年齡在18-30之間的用戶信息
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.ge("age", 18).le("age", 30);
List<User> userList = userMapper.selectList(wrapper);

在以上例子中,QueryWrapper對象的方法eq、gele分別表示使用等于、大于等于、小于等于比較運算符進行條件查詢。

模糊查詢(`like`、`notLike`)

模糊查詢是一種常見的查詢方式,可以通過 likenotLike 操作符來實現(xiàn)。在使用 MybatisPlus 進行模糊查詢時,可以使用 Wrapper 類來構(gòu)建查詢條件。

下面是各個比較運算符的含義:

  • %value%:匹配任意位置包含指定字符的字符串。
  • %value:匹配以指定字符結(jié)尾的字符串。
  • value%:匹配以指定字符開頭的字符串。
  • _value_:匹配指定字符在任意位置的字符串。
  • _value:匹配指定字符在最后一個位置的字符串。
  • value_:匹配指定字符在第一個位置的字符串。

使用 MybatisPlus 進行模糊查詢的示例代碼如下:

// 模糊查詢
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.like("name", "張"); // 查詢名字包含“張”的用戶
wrapper.notLike("phone", "123"); // 查詢電話號碼不包含“123”的用戶
List<User> userList = userMapper.selectList(wrapper);

上述代碼中,like 方法用于匹配名字中包含“張”的用戶,notLike 方法用于匹配電話號碼中不包含“123”的用戶。

需要注意的是,模糊查詢可能會影響查詢效率,因此應盡量在有必要的情況下使用模糊查詢。

聚合查詢(`count`、`sum`、`avg`、`max`、`min`)

在 Mybatis-Plus 中,聚合查詢可以通過 QueryWrapper 或 LambdaQueryWrapper 進行操作,常用的聚合函數(shù)有 countsum、avg、max、min。

下面是一些示例代碼:

使用 count 查詢符合條件的記錄數(shù):

int count = userService.count(new QueryWrapper<User>()
    .eq("age", 18)
    .like("name", "張")
);

使用 sum 查詢某個字段的總和:

BigDecimal sum = userService.getBaseMapper().selectObjs(new LambdaQueryWrapper<User>()
    .eq(User::getGender, "男")
).stream().map(User::getSalary).reduce(BigDecimal.ZERO, BigDecimal::add);

使用 avg 查詢某個字段的平均值:

Double avg = userService.getBaseMapper().selectObjs(new LambdaQueryWrapper<User>()
    .between(User::getBirthday, LocalDate.of(1990, 1, 1), LocalDate.of(2000, 1, 1))
).stream().mapToDouble(User::getAge).average().orElse(0);

使用 max 查詢某個字段的最大值:

LocalDate max = userService.getBaseMapper().selectObjs(new QueryWrapper<User>()
    .select("max(birthday) as maxBirthday")
).stream().map(obj -> ((Date)obj[0]).toLocalDate()).findAny().orElse(null);

使用 min 查詢某個字段的最小值:

LocalDate min = userService.getBaseMapper().selectObjs(new LambdaQueryWrapper<User>()
    .ge(User::getAge, 18)
    .isNotNull(User::getBirthday)
).stream().map(User::getBirthday).min(LocalDate::compareTo).orElse(null);

還可以鏈式調(diào)用多個條件方法來組合條件。

例如,可以使用以下方式來構(gòu)建查詢條件:

templateWrapper.eq(MessageTemplate::getType, "SMS") // 等于條件
    .likeRight(MessageTemplate::getContent, "Hello") // 右模糊查詢
    .ge(MessageTemplate::getCreateTime, LocalDateTime.now().minusDays(7)) // 大于等于條件
    .orderByAsc(MessageTemplate::getPriority); // 升序排序條件

最后,使用構(gòu)建好的 `LambdaUpdateWrapper` 對象來執(zhí)行相應的數(shù)據(jù)庫更新操作,例如使用 `update()` 方法來更新數(shù)據(jù)庫中的記錄。

總而言之

LambdaUpdateWrapper類是 MyBatis-Plus 框架提供的一種便捷方式,可用于通過Lambda表達式構(gòu)建數(shù)據(jù)庫更新操作的條件查詢對象。

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

相關文章

  • Java Redis Template批量查詢指定鍵值對的實現(xiàn)

    Java Redis Template批量查詢指定鍵值對的實現(xiàn)

    本文主要介紹了Java Redis Template批量查詢指定鍵值對的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • springboot項目啟動后執(zhí)行方法的三種方式

    springboot項目啟動后執(zhí)行方法的三種方式

    有時項目需求,需要項目啟動的時候向數(shù)據(jù)庫中查詢一下系統(tǒng)屬性,或者需要加載某個特定的方法,下面這篇文章主要給大家介紹了關于springboot項目啟動后執(zhí)行方法的三種方式,需要的朋友可以參考下
    2022-06-06
  • 使用1招搞定maven打包空間不足的問題

    使用1招搞定maven打包空間不足的問題

    這篇文章主要介紹了使用1招搞定maven打包空間不足的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • RocketMQ整合SpringBoot實現(xiàn)生產(chǎn)級二次封裝

    RocketMQ整合SpringBoot實現(xiàn)生產(chǎn)級二次封裝

    本文主要介紹了RocketMQ整合SpringBoot實現(xiàn)生產(chǎn)級二次封裝,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • Java實現(xiàn)二叉樹的建立、計算高度與遞歸輸出操作示例

    Java實現(xiàn)二叉樹的建立、計算高度與遞歸輸出操作示例

    這篇文章主要介紹了Java實現(xiàn)二叉樹的建立、計算高度與遞歸輸出操作,結(jié)合實例形式分析了Java二叉樹的創(chuàng)建、遍歷、計算等相關算法實現(xiàn)技巧,需要的朋友可以參考下
    2019-03-03
  • java中的session對象如何獲取

    java中的session對象如何獲取

    這篇文章主要介紹了java中的session對象如何獲取,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Struts2 自定義下拉框Tag標簽

    Struts2 自定義下拉框Tag標簽

    這篇文章主要介紹了Struts2 自定義下拉框Tag標簽的相關資料,需要的朋友可以參考下
    2016-02-02
  • 2020最新版idea激活教程(推薦)

    2020最新版idea激活教程(推薦)

    這篇文章主要介紹了2020最新版idea激活教程,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Spring Security登錄接口兼容JSON格式登錄實現(xiàn)示例

    Spring Security登錄接口兼容JSON格式登錄實現(xiàn)示例

    前后端分離中,前端和后端的數(shù)據(jù)交互通常是JSON格式,本文主要介紹了Spring Security登錄接口兼容JSON格式登錄實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • Mybatis-Plus使用saveOrUpdate及問題解決方法

    Mybatis-Plus使用saveOrUpdate及問題解決方法

    本文主要介紹了Mybatis-Plus使用saveOrUpdate及問題解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01

最新評論

南川市| 垣曲县| 柏乡县| 萝北县| 竹北市| 西峡县| 光泽县| 增城市| 腾冲县| 云霄县| 丰城市| 旌德县| 南靖县| 安阳市| 禹州市| 图木舒克市| 宾阳县| 苍山县| 滨州市| 南开区| 客服| 安吉县| 昆山市| 松原市| 彰武县| 香格里拉县| 锡林浩特市| 彰化县| 小金县| 河津市| 河北区| 西华县| 乐安县| 安吉县| 新丰县| 宣威市| 望奎县| 长寿区| 平果县| 沈丘县| 新密市|