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

詳解MyBatis-Plus updateById方法更新不了空字符串/null解決方法

 更新時間:2020年09月01日 10:57:01   作者:璀璨英雄  
這篇文章主要介紹了詳解MyBatis-Plus updateById方法更新不了空字符串/null解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

最近遇到了Mybatis-Plus updateById(),更新某一個字段為null,卻發(fā)現(xiàn)沒有更新成功,發(fā)現(xiàn)有一個博客記錄挺好的。轉載過來,方便自己看。

一、簡介

因為最近在忙項目,好久都沒有更新博客,最近在項目中剛好遇到一個問題,就是在使用MyBatis-Plus updateById(xxx)的時候,居然更新不了字符串或者null,本文分享兩種解決方案,具體大家可以根據自己的需求選擇一種方法解決。

二、原理

在實際項目中,難免更新的時候,有可能會把已有的值更新成空字符串或者null,但是當你使用updateById()方法的時候,會發(fā)現(xiàn)根本不生效。這其實是MyBatis-Plus對字段的驗證策略導致的,MyBatis-Plus默認進行了不是全量更新的策略,查閱官網發(fā)現(xiàn)有一個屬性:因為筆者使用的是springboot,下面是mybatis-plus配置文件:

 mybatis-plus:
   global-config:
    #字段策略 0:"忽略判斷",1:"非 NULL 判斷"),2:"非空判斷"
    field-strategy: 1

這個字段驗證策略默認是1, 即NOT NULL,更新的時候做了null判斷,默認不更新為null的傳參。

field-strategy字段更新插入策略屬性說明:

  • IGNORED(0): "忽略判斷", 所有字段都更新和插入
  • NOT_NULL(1): "非 NULL 判斷", 只更新和插入非NULL值
  • NOT_EMPTY(2): "非空判斷", 只更新和插入非NULL值且非空字符串
  • DEFAULT:默認NOT_NULL

field-strategy字段更新插入策略屬性說明:

  • IGNORED(0): "忽略判斷", 所有字段都更新和插入
  • NOT_NULL(1): "非 NULL 判斷", 只更新和插入非NULL值
  • NOT_EMPTY(2): "非空判斷", 只更新和插入非NULL值且非空字符串
  • DEFAULT:默認NOT_NULL

三、解決方法

【第一種方法】:全局配置方式

在MyBatis-Plus配置文件中修改field-strategy字段驗證的值為0,即忽略判斷。

記住,光設置這個是不會進行判斷了,但是你會發(fā)現(xiàn)更新插入操作的時候還是會報錯,會報jdbcType不允許為空,這個時候,你需要確保你的PO對象(即@TableField(value="XSID")修飾字段的時候,還需要加入el屬性,每個屬性對應數據庫的jdbcType類型,這樣才能成功更新空值或null。如下圖:

【第二種方法】:如果你設置的字段驗證策略為非null判斷

這個時候你會發(fā)現(xiàn)可以更新空字符串' ',但是一些比如Date等對象類型的設置空是要設置為null的,你會發(fā)現(xiàn)一樣更新不了null,

由于表中的字段基本上都是varchar字符類型的,所以這個時候可以在PO中對類型為對象類型的屬性通過注解對對象類型的屬性單獨設置字段驗證策略為IGNORED如下圖:

這樣就可以成功更新值為null或者空字符串' '了,問題解決。

四、總結

以上是筆者在實際項目中遇到mybatis-plus更新操作不生效的問題總結以及解決方案,讀者可以根據具體需求選擇適合自己的一種解決方法,希望能對大家有所幫助。

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

相關文章

  • Java求兩集合的交集、并集、差集實例

    Java求兩集合的交集、并集、差集實例

    這篇文章主要介紹了Java求兩集合的交集、并集、差集實例,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • SpringBoot @Validated注解實現(xiàn)參數分組校驗的方法實例

    SpringBoot @Validated注解實現(xiàn)參數分組校驗的方法實例

    這篇文章主要給大家介紹了關于SpringBoot @Validated注解實現(xiàn)參數分組校驗的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Java對象的序列化與反序列化詳解

    Java對象的序列化與反序列化詳解

    這篇文章主要為大家詳細介紹了Java對象的序列化與反序列化的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • SpringMVC實現(xiàn)文件上傳與下載、攔截器、異常處理器等功能

    SpringMVC實現(xiàn)文件上傳與下載、攔截器、異常處理器等功能

    這篇文章主要給大家介紹了關于SpringMVC實現(xiàn)文件上傳與下載、攔截器、異常處理器等功能的相關資料,這些功能在我們日常開發(fā)中經常會遇到,本文通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-09-09
  • Java中如何判斷線程池任務已執(zhí)行完成

    Java中如何判斷線程池任務已執(zhí)行完成

    這篇文章主要介紹了Java中如何判斷線程池任務已執(zhí)行完成,文章圍繞主題展開詳細相關資料,具有一定的參考價值需要的小伙伴可以參考以參考一下
    2022-05-05
  • java獲取百度網盤真實下載鏈接的方法

    java獲取百度網盤真實下載鏈接的方法

    這篇文章主要介紹了java獲取百度網盤真實下載鏈接的方法,涉及java針對URL操作及頁面分析的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • Java 實現(xiàn)將List平均分成若干個集合

    Java 實現(xiàn)將List平均分成若干個集合

    這篇文章主要介紹了Java 實現(xiàn)將List平均分成若干個集合,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • JavaBean和Map轉換封裝類的方法

    JavaBean和Map轉換封裝類的方法

    下面小編就為大家?guī)硪黄狫avaBean和Map轉換封裝類的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • 基于SpringBoot的SSMP的整合案例

    基于SpringBoot的SSMP的整合案例

    這篇文章主要介紹了SpringBoot整合SSMP的詳細教程,文中通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • SpringBoot整合JPA 基礎使用示例教程

    SpringBoot整合JPA 基礎使用示例教程

    JPA(Java Persistence API)是Java提供的一套數據持久化標準,通過對象-關系映射(ORM)技術實現(xiàn)Java對象與數據庫表之間的映射,它提供了一系列注解和接口,簡化了數據庫操作,使得開發(fā)者可以通過操作對象來進行數據庫交互,而無需編寫復雜的SQL語句
    2024-10-10

最新評論

工布江达县| 灵山县| 井冈山市| 黔南| 秭归县| 东丽区| 利川市| 仙居县| 金塔县| 新河县| 克什克腾旗| 东山县| 临朐县| 古交市| 广灵县| 云南省| 武义县| 读书| 邢台市| 岑溪市| 清新县| 东安县| 老河口市| 隆化县| 惠东县| 潞城市| 郧西县| 曲阳县| 九江市| 牡丹江市| 庄河市| 辉县市| 吴旗县| 准格尔旗| 洛宁县| 大方县| 莱阳市| 武山县| 三亚市| 长子县| 朝阳市|