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

MyBatisPlus通過ID更新數(shù)據(jù)為NULL的四種方法

 更新時間:2025年08月14日 09:45:13   作者:行星008  
本文主要介紹了MyBatisPlus通過ID更新數(shù)據(jù)為NULL的實現(xiàn)方法,包括@TableField注解、UpdateWrapper、lambdaUpdate及全局配置,具有一定的參考價值,感興趣的可以了解一下

在使用 MyBatis-Plus 通過 ID 更新數(shù)據(jù)時,若需將字段值設為 null,可參考以下解決方案:

方法一:使用@TableField注解

在實體類字段上添加注解,指定更新策略為忽略非空檢查:

public class User {
    @TableField(strategy = FieldStrategy.IGNORED)
    private String email;
}

調(diào)用 updateById 時,該字段即使為 null 也會被更新。

方法二:使用UpdateWrapper手動設置

通過 UpdateWrapper 顯式指定需更新的字段:

User user = new User();
user.setId(1L);

UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("id", user.getId())
             .set("email", null); // 顯式設置 null

userMapper.update(null, updateWrapper);

此方法靈活控制需要更新的字段。

方法三:全局配置(謹慎使用)

在配置類中設置全局更新策略為忽略非空檢查:

@Configuration
public class MybatisPlusConfig {
    @Bean
    public GlobalConfig globalConfig() {
        GlobalConfig config = new GlobalConfig();
        config.setDbConfig(new GlobalConfig.DbConfig()
                .setUpdateStrategy(FieldStrategy.IGNORED));
        return config;
    }
}

注意:此配置會影響所有更新操作,需確保數(shù)據(jù)庫約束允許字段為 null。

方法四:使用lambdaUpdate

通過 Lambda 表達式構(gòu)建更新條件:

User user = new User();
user.setId(1L);

userMapper.lambdaUpdate()
          .eq(User::getId, user.getId())
          .set(User::getEmail, null)
          .update();

簡潔且類型安全。

總結(jié)

  • 個別字段處理:使用 @TableField 注解。
  • 靈活單次更新:選擇 UpdateWrapper 或 lambdaUpdate
  • 全局處理(謹慎):配置全局策略。

注意事項

  • 確保數(shù)據(jù)庫字段允許 NULL,否則會引發(fā)異常。
  • 全局配置需全面測試,避免意外覆蓋非空字段。
  • 根據(jù) MyBatis-Plus 版本調(diào)整策略名稱(如 FieldStrategy 在 3.x 后更名為 FieldFill 等)。

到此這篇關(guān)于MyBatisPlus通過ID更新數(shù)據(jù)為NULL的實現(xiàn)方法的文章就介紹到這了,更多相關(guān)MyBatisPlus更新為NULL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MyBatis如何使用(一)

    MyBatis如何使用(一)

    這篇文章主要介紹了MyBatis如何使用(一)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • Java虛擬機運行時數(shù)據(jù)區(qū)域匯總

    Java虛擬機運行時數(shù)據(jù)區(qū)域匯總

    這篇文章主要給大家介紹了關(guān)于Java虛擬機運行時數(shù)據(jù)區(qū)域的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • windows下zookeeper配置java環(huán)境變量的方法

    windows下zookeeper配置java環(huán)境變量的方法

    今天小編就為大家分享一篇關(guān)于windows下zookeeper配置java環(huán)境變量的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • IDEA解決springboot熱部署失效問題(推薦)

    IDEA解決springboot熱部署失效問題(推薦)

    熱部署,就是在應用正在運行的時候升級軟件,卻不需要重新啟動應用。這篇文章主要介紹了IDEA解決springboot熱部署失效問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • SpringBoot單元測試解讀

    SpringBoot單元測試解讀

    SpringBoot提供了基于JUnit5的測試工具,方便進行測試,默認導入相關(guān)依賴,創(chuàng)建測試類,使用斷言(Assertions類)進行斷言操作,支持參數(shù)化測試
    2025-02-02
  • 關(guān)于ThreadLocal使用時OOM的討論

    關(guān)于ThreadLocal使用時OOM的討論

    這篇文章主要介紹了關(guān)于ThreadLocal使用時OOM的討論,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • 淺談JVM系列之從匯編角度分析NullCheck

    淺談JVM系列之從匯編角度分析NullCheck

    在virtual call中執(zhí)行nullcheck的時候,如果已經(jīng)知道傳遞的參數(shù)是非空的。JIT會對代碼進行優(yōu)化嗎?本文將詳細介紹JVM系列之從匯編角度分析NullCheck。
    2021-06-06
  • java實現(xiàn)兩個對象之間傳值及簡單的封裝

    java實現(xiàn)兩個對象之間傳值及簡單的封裝

    這篇文章主要介紹了java實現(xiàn)兩個對象之間傳值及簡單的封裝,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java開發(fā)過程中關(guān)于異常處理的詳解

    Java開發(fā)過程中關(guān)于異常處理的詳解

    異常是程序中的一些錯誤,但不是所有錯誤都是異常,且錯誤有時候是可以避免的。比如說,你的代碼少一個分號,那運行出來結(jié)果是提示是錯誤 java.lang.Error;如果你用System.out.println(11/0),那么你是因為你用0做了除數(shù),會拋出 java.lang.ArithmeticException 的異常
    2021-10-10
  • Java警告:原發(fā)性版11需要目標發(fā)行版11的解決方法和步驟

    Java警告:原發(fā)性版11需要目標發(fā)行版11的解決方法和步驟

    這篇文章主要介紹了Java警告:原發(fā)性版11需要目標發(fā)行版11的解決方法和步驟,文中通過圖文介紹的非常詳細,對大家學習或者使用java具有一定的參考借鑒價值,需要的朋友可以參考下
    2025-04-04

最新評論