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

MyBatis-Plus updateById不更新null值的方法解決

 更新時間:2023年08月25日 11:41:31   作者:一碗情深  
用Mybatis-Plus的updateById()來更新數(shù)據(jù)時,無法將字段設(shè)置為null值,更新后數(shù)據(jù)還是原來的值,本文就來詳細的介紹一下解決方法,具有一定的參考價值,感興趣的可以了解一下

前言

在 MyBatis-Plus 中,使用updateById,null字段并不會更新,其實是和更新的策略有關(guān),當然,也有插入策略,本文基于MyBatis-Plus3.5.2,對插入和更新策略做講解。

方式一 調(diào)整全局的驗證策略

注入全局配置,設(shè)置屬性 insertStrategyupdateStrategy

缺點:這樣做會對所有的字段都忽略判斷,如果一些字段不想要修改,但是傳值的時候沒有傳遞過來,就會被更新為null

mybatis-plus:
  global-config:
    db-config:
      insert-strategy: ignored  # "忽略判斷", 所有字段都插入
      update-strategy: ignored  # "忽略判斷", 所有字段都更新

insertStrategy、updateStrategy 屬性的值有以下5種枚舉類型:

  • ignored “忽略判斷”, 所有字段都更新或插入
  • not_null “非 NULL 判斷”, 只更新或插入非NULL值
  • not_empty “非空判斷”, 只更新或插入非NULL值且非空字符串
  • default 如果字段的值不為null,則進行插入或者更新操作;如果字段的值為null,不執(zhí)行操作,執(zhí)行結(jié)果還是數(shù)據(jù)庫原來的值或者默認值
  • never 永遠不進行插入或更新操作,即使字段的值不為null

方式二 調(diào)整字段驗證注解

在屬性上注解

根據(jù)具體情況,在需要更新或者插入的字段中調(diào)整驗證注解,如忽略判斷,任何情況都進行插入和更新操作:

@TableField(updateStrategy = FieldStrategy.IGNORED, insertStrategy = FieldStrategy.IGNORED)

方式三 使用 UpdateWrapper

如果沒有設(shè)置 insert-strategy、update-strategy 的值,默認為 default

使用以下方法來進行更新操作,無設(shè)置的值還是數(shù)據(jù)庫原來的值,如下

UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.set("name", "一碗情深")
    .set("url", "https://blog.csdn.net/xiaohuihui1400")
    .eq("id", 1);
userMapper.update(null, updateWrapper);

或者使用lambda表達式,只有將屬性賦值,數(shù)據(jù)庫的值才會改變,如下,把email設(shè)置成null

mapper.update(
    null,
    Wrappers.<User>lambdaUpdate()
        .set(User::getName, "一碗情深")
		.set(User::getUrl, "https://blog.csdn.net/xiaohuihui1400")
        .set(User::getEmail, null) // 把email設(shè)置成null
        .eq(User::getId, 1)
);

 到此這篇關(guān)于MyBatis-Plus updateById不更新null值的方法解決的文章就介紹到這了,更多相關(guān)MyBatis-Plus updateById不更新null值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot設(shè)置接口超時的方法小結(jié)

    SpringBoot設(shè)置接口超時的方法小結(jié)

    這篇文章主要介紹了SpringBoot設(shè)置接口超時的方法小結(jié),包括配置文件,config配置類及相關(guān)示例代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Java jpa外連接查詢join案例詳解

    Java jpa外連接查詢join案例詳解

    這篇文章主要介紹了Java jpa外連接查詢join案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • SpringCloud?Tencent?全套解決方案源碼分析

    SpringCloud?Tencent?全套解決方案源碼分析

    Spring Cloud Tencent實現(xiàn)Spring Cloud標準微服務(wù)SPI,開發(fā)者可以基于Spring Cloud Tencent開發(fā)Spring Cloud微服務(wù)架構(gòu)應(yīng)用,Spring Cloud Tencent 的核心依托騰訊開源的一站式服務(wù)發(fā)現(xiàn)與治理平臺 Polarismesh,實現(xiàn)各種分布式微服務(wù)場景,感興趣的朋友一起看看吧
    2022-07-07
  • SpringBoot統(tǒng)一功能處理的方式詳解

    SpringBoot統(tǒng)一功能處理的方式詳解

    這篇文章主要為大家詳細介紹了SpringBoot統(tǒng)一功能處理的方式,文中的示例代碼講解詳細,對我們學習或工作有一定借鑒價值,需要的可以參考一下
    2022-08-08
  • 淺談java8中map的新方法--replace

    淺談java8中map的新方法--replace

    下面小編就為大家?guī)硪黄獪\談java8中map的新方法--replace。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • swing重繪按鈕為任意形狀圖案的方法

    swing重繪按鈕為任意形狀圖案的方法

    這篇文章主要為大家詳細介紹了swing重繪按鈕為任意形狀圖案,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Eclipse+Java+Swing+Mysql實現(xiàn)工資管理系統(tǒng)

    Eclipse+Java+Swing+Mysql實現(xiàn)工資管理系統(tǒng)

    這篇文章主要介紹了Eclipse+Java+Swing+Mysql實現(xiàn)工資管理系統(tǒng),對正在工作或者學習的你有一定的參考價值,需要的朋友可以參考一下
    2022-01-01
  • Java map的學習及代碼示例

    Java map的學習及代碼示例

    這篇文章主要介紹了Java map的學習及代碼示例,簡單介紹了map與collection的比較,map的相關(guān)內(nèi)容,分享了map的一些簡介代碼示例,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • java 代碼塊與靜態(tài)代碼塊加載順序

    java 代碼塊與靜態(tài)代碼塊加載順序

    這篇文章主要介紹了java 代碼塊與靜態(tài)代碼塊加載順序的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Spring中@Autowired注解作用在方法上和屬性上說明

    Spring中@Autowired注解作用在方法上和屬性上說明

    這篇文章主要介紹了Spring中@Autowired注解作用在方法上和屬性上說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11

最新評論

伊金霍洛旗| 呼伦贝尔市| 东宁县| 茂名市| 朔州市| 长垣县| 双桥区| 元江| 台湾省| 亚东县| 乐东| 漯河市| 永城市| 双鸭山市| 闵行区| 海淀区| 宁强县| 皮山县| 乌兰察布市| 新和县| 浦江县| 恩施市| 芜湖市| 子长县| 武宣县| 东阳市| 佳木斯市| 棋牌| 龙门县| 兰溪市| 安徽省| 黄浦区| 镇江市| 左云县| 河东区| 长葛市| 福州市| 滦平县| 芮城县| 洪洞县| 巫山县|