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

MyBatis-Plus:saveOrUpdate根據(jù)指定字段更新或插入方式

 更新時間:2025年04月01日 10:03:19   作者:五月天的尾巴  
這篇文章主要介紹了MyBatis-Plus:saveOrUpdate根據(jù)指定字段更新或插入方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

一、概述

MyBatis-Plus中提供了一個saveOrUpdate()方法,默認情況下可以根據(jù)主鍵是否存在進行更新或插入操作,但是實際場景中,我們會遇到根據(jù)指定字段進行更新或插入的情況。

以下記錄一下如何根據(jù)指定字段進行更新或插入操作。

二、實現(xiàn)方式

  • 功能描述: 根據(jù)實體對象的主鍵 ID 進行判斷,存在則更新記錄,否則插入記錄。
  • 返回值: boolean,表示插入或更新操作是否成功。
// @TableId 注解屬性值存在則更新記錄,否插入一條記錄
boolean saveOrUpdate(T entity);

// 根據(jù)updateWrapper嘗試更新,否繼續(xù)執(zhí)行saveOrUpdate(T)方法
boolean saveOrUpdate(T entity, Wrapper<T> updateWrapper);

若要根據(jù)指定字段更新,則使用saveOrUpdate(T entity, Wrapper<T> updateWrapper)方法。

IService中存在一種這樣的方法,接收兩個參數(shù),

default boolean saveOrUpdate(T entity, Wrapper<T> updateWrapper) {
   return this.update(entity, updateWrapper) || this.saveOrUpdate(entity);
}

在執(zhí)行時的執(zhí)行邏輯是這樣的:

  1. 首先根據(jù)updateWrapper查詢需要更新哪個記錄;
  2. 如果能查詢到記錄,則進行更新操作,更新時會根據(jù)entity對象屬性的值進行更新,注意null值會忽略,如果未能查詢到記錄,則會把entity對象進行插入操作;

以一段代碼給出詳細的解釋:

// 導入必要的類
import com.baomidou.mybatisplus.core.conditions.query.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

// 創(chuàng)建一個UpdateWrapper對象,指定查詢條件
UpdateWrapper<User> updateWrapper = Wrappers.query();
updateWrapper.eq("id", 111);  // 假設這里是你的指定字段和條件

// 調(diào)用saveOrUpdate方法,傳入實體對象和UpdateWrapper對象
userMapper.saveOrUpdate(user, updateWrapper);

三、總結(jié)

總的來說,saveOrUpdate(T entity, Wrapper updateWrapper)方法

會根據(jù)指定的條件先進行查詢,然后根據(jù)查詢結(jié)果自動決定是執(zhí)行更新操作還是插入操作,從而實現(xiàn)根據(jù)指定字段執(zhí)行保存或更新的邏輯。

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

相關文章

  • java之項目運維手冊

    java之項目運維手冊

    這篇文章主要介紹了java之項目運維手冊,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • SpringBoot集成極光推送完整實現(xiàn)代碼

    SpringBoot集成極光推送完整實現(xiàn)代碼

    本文主要介紹了SpringBoot集成極光推送完整實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 深入理解Spring Boot屬性配置文件

    深入理解Spring Boot屬性配置文件

    這篇文章主要給大家深入的介紹了關于Spring Boot屬性配置文件的相關資料,文中介紹的很詳細,相信對大家具有一定的參考借鑒價值,需要的朋友們下面來一起看看吧。
    2017-02-02
  • IDEA巧用Postfix Completion讓碼速起飛(小技巧)

    IDEA巧用Postfix Completion讓碼速起飛(小技巧)

    這篇文章主要介紹了IDEA巧用Postfix Completion讓碼速起飛,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • 基于Spring框架的Shiro配置方法

    基于Spring框架的Shiro配置方法

    這篇文章主要介紹了基于Spring框架的Shiro配置方法,需要的朋友可以參考下
    2014-10-10
  • Java實現(xiàn)藍橋杯G將軍的示例代碼

    Java實現(xiàn)藍橋杯G將軍的示例代碼

    這篇文章主要介紹了Java實現(xiàn)藍橋杯G將軍的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • 新手了解java 數(shù)組基礎知識

    新手了解java 數(shù)組基礎知識

    這篇文章主要介紹了Java 數(shù)組分析及簡單實例的相關資料,在Java中它就是對象,一個比較特殊的對象,需要的朋友可以參考下,希望可以對你有所幫助
    2021-07-07
  • 告訴你為什么?ThreadLocal?可以做到線程隔離

    告訴你為什么?ThreadLocal?可以做到線程隔離

    對于 ThreadLocal 我們都不陌生,它的作用如同它的名字用于存放線程本地變量,這篇文章主要介紹了為什么?ThreadLocal?可以做到線程隔離,需要的朋友可以參考下
    2022-07-07
  • java繼承的概念及案例解析

    java繼承的概念及案例解析

    這篇文章主要介紹了java繼承的概念及案例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • rocketmq如何修改存儲路徑

    rocketmq如何修改存儲路徑

    這篇文章主要介紹了rocketmq如何修改存儲路徑的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07

最新評論

沐川县| 岳阳市| 福建省| 郎溪县| 福建省| 轮台县| 攀枝花市| 荃湾区| 南靖县| 东乌珠穆沁旗| 娄底市| 嵊州市| 勃利县| 会昌县| 楚雄市| 邻水| 博客| 彭阳县| 靖远县| 肇州县| 淮北市| 崇信县| 郑州市| 溆浦县| 淮阳县| 德兴市| 石嘴山市| 丰县| 石台县| 保德县| 柘荣县| 邓州市| 东乡族自治县| 罗源县| 青州市| 内乡县| 布尔津县| 吐鲁番市| 略阳县| 赤峰市| 日照市|