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

Mybatis-Plus將字段設(shè)置為null解決方法

 更新時(shí)間:2023年04月25日 11:10:53   作者:Java小白筆記  
MyBatis-Plus是一個(gè)MyBatis的增強(qiáng)工具,在MyBatis的基礎(chǔ)上只做增 強(qiáng)不做改變,為簡(jiǎn)化開發(fā)、提高效率而生,下面這篇文章主要給大家介紹了關(guān)于Mybatis-Plus將字段設(shè)置為null的解決方法的相關(guān)資料,需要的朋友可以參考下

Mybatis-Plus將字段設(shè)置為null

項(xiàng)目場(chǎng)景:

最近在做一個(gè)需求的時(shí)候需要把數(shù)據(jù)庫(kù)中的某個(gè)字段設(shè)置為空

問(wèn)題描述:

在代碼中通過(guò)set方法對(duì)一個(gè)字段設(shè)置成null,發(fā)現(xiàn)并沒(méi)有起作用

原因分析:

經(jīng)過(guò)查詢是因?yàn)镸ybatis-Plus默認(rèn)的更新策略設(shè)置的問(wèn)題,Mybatis-Plus中FieldStrategy有三種策略:

  • IGNORED:忽略。不管有沒(méi)有有設(shè)置屬性,所有的字段都會(huì)設(shè)置到insert語(yǔ)句中,如果沒(méi)設(shè)置值會(huì)更新為null;
  • NOT_NULL:非 NULL,默認(rèn)策略。也就是忽略null的字段,不忽略"";
  • NOT_EMPTY:非空。為null,為空串的忽略,就是如果設(shè)置值為null,“”,不會(huì)插入數(shù)據(jù)庫(kù);

默認(rèn)的是NOT_NULL,也就是忽略null字段,所以更新不成功。

解決方案:

需對(duì) FieldStrategy 策略進(jìn)行調(diào)整,有如下三種方式:

方式一:調(diào)整全局的驗(yàn)證策略,如下:

mybatis-plus:
  mapper-locations: classpath:/mapper/**/*.xml
  typeAliasesPackage: com.test.application.test.admin.entity
  global-config:
    #主鍵類型  0:"數(shù)據(jù)庫(kù)ID自增", 1:"用戶輸入ID",2:"全局唯一ID (數(shù)字類型唯一ID)", 3:"全局唯一ID UUID";
    id-type: 0
    #字段策略 0:"忽略判斷",1:"非 NULL 判斷"),2:"非空判斷"
    field-strategy: 0
    #駝峰下劃線轉(zhuǎn)換
    db-column-underline: true
    #刷新mapper 調(diào)試神器
    refresh-mapper: true
    #數(shù)據(jù)庫(kù)大寫下劃線轉(zhuǎn)換
    #capital-mode: true
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

方式二:【推薦】調(diào)整字段驗(yàn)證注解

Mybatis-Plus 版本3.1.2及以上,根據(jù)具體情況,在需要更新的字段中調(diào)整驗(yàn)證注解,如驗(yàn)證非空:

@TableField(insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED)
private String name;

或者單個(gè)的例子:

@TableField(updateStrategy = FieldStrategy.IGNORED)
private String username;

方式三:使用 UpdateWrapper (3.x)

使用以下方法來(lái)進(jìn)行更新或插入操作:

//updateAllColumnById(entity) // 全部字段更新: 3.0已經(jīng)移除
mapper.update(
  new User().setName("mp").setAge(3),
  Wrappers.<User>lambdaUpdate()
          .set(User::getEmail, null) //把email設(shè)置成null
          .eq(User::getId, 2)
);

// 也可以參考下面這種寫法
mapper.update(
   null,
   Wrappers.<User>lambdaUpdate()
      .set(User::getAge, 3)
      .set(User::getName, "mp")
      .set(User::getEmail, null) // 把email設(shè)置成null
      .eq(User::getId, 2)
);

總結(jié)

到此這篇關(guān)于Mybatis-Plus將字段設(shè)置為null的文章就介紹到這了,更多相關(guān)Mybatis-Plus字段設(shè)置null內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于maven搭建一個(gè)ssm的web項(xiàng)目的詳細(xì)圖文教程

    基于maven搭建一個(gè)ssm的web項(xiàng)目的詳細(xì)圖文教程

    這篇文章主要介紹了基于maven搭建一個(gè)ssm的web項(xiàng)目的詳細(xì)教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Maven2環(huán)境安裝與準(zhǔn)備工作詳解

    Maven2環(huán)境安裝與準(zhǔn)備工作詳解

    這篇文章主要為大家詳細(xì)介紹了Maven2環(huán)境安裝與準(zhǔn)備工作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • spring boot教程之產(chǎn)生的背景及其優(yōu)勢(shì)

    spring boot教程之產(chǎn)生的背景及其優(yōu)勢(shì)

    這篇文章主要介紹了spring boot教程之產(chǎn)生的背景及其優(yōu)勢(shì)的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • JsonProperty及JSONField注解的使用說(shuō)明

    JsonProperty及JSONField注解的使用說(shuō)明

    文章介紹了兩個(gè)常用的Java庫(kù)注解:Jackson的@JsonProperty和Fastjson的@JSONField,它們用于控制Java對(duì)象與JSON數(shù)據(jù)之間的序列化和反序列化,文章詳細(xì)說(shuō)明了這兩個(gè)注解的常見屬性及其使用場(chǎng)景,包括指定屬性名、控制字段可見性、設(shè)置默認(rèn)值和標(biāo)記字段的必需性
    2024-12-12
  • Java中數(shù)組的一些常見操作和技巧分析

    Java中數(shù)組的一些常見操作和技巧分析

    這篇文章主要給大家介紹了關(guān)于Java中數(shù)組的一些常見操作和技巧分析的相關(guān)資料,數(shù)組(Array)是Java中的一種引用數(shù)據(jù)類型,是多個(gè)相同類型數(shù)據(jù)一定順序排列的集合,并使用一個(gè)名字命名,并通過(guò)編號(hào)的方式對(duì)這些數(shù)據(jù)進(jìn)行統(tǒng)一管理,需要的朋友可以參考下
    2023-08-08
  • 使用React和springboot做前后端分離項(xiàng)目的步驟方式

    使用React和springboot做前后端分離項(xiàng)目的步驟方式

    這篇文章主要介紹了使用React和springboot做前后端分離項(xiàng)目的步驟方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 一文帶你了解Spring中@Enable開頭注解的使用

    一文帶你了解Spring中@Enable開頭注解的使用

    前面的文章給大家介紹?Spring?的重試機(jī)制的時(shí)候有提到過(guò)?Spring?有很多?@Enable?開頭的注解,平時(shí)在使用的時(shí)候也沒(méi)有注意過(guò)為什么會(huì)有這些注解,今天就給大家介紹一下
    2022-09-09
  • springboot+mybatis配置控制臺(tái)打印sql日志的方法

    springboot+mybatis配置控制臺(tái)打印sql日志的方法

    這篇文章主要介紹了springboot+mybatis配置控制臺(tái)打印sql日志的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • mybatis.type-aliases-package之巨坑的解決

    mybatis.type-aliases-package之巨坑的解決

    這篇文章主要介紹了mybatis.type-aliases-package之巨坑的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2021-09-09
  • Java數(shù)據(jù)結(jié)構(gòu)之線段樹的原理與實(shí)現(xiàn)

    Java數(shù)據(jù)結(jié)構(gòu)之線段樹的原理與實(shí)現(xiàn)

    線段樹是一種二叉搜索樹,是用來(lái)維護(hù)區(qū)間信息的數(shù)據(jù)結(jié)構(gòu)。本文將利用示例詳細(xì)講講Java數(shù)據(jù)結(jié)構(gòu)中線段樹的原理與實(shí)現(xiàn),需要的可以參考一下
    2022-06-06

最新評(píng)論

广灵县| 阿尔山市| 丹巴县| 修文县| 黑山县| 平泉县| 周口市| 浦城县| 马龙县| 定远县| 普安县| 崇仁县| 桐庐县| 扎鲁特旗| 阳新县| 会理县| 盘锦市| 葫芦岛市| 靖安县| 和林格尔县| 甘谷县| 共和县| 曲靖市| 盐城市| 德保县| 泊头市| 淮阳县| 万安县| 罗田县| 元氏县| 昌黎县| 万州区| 贵定县| 惠东县| 靖西县| 乌海市| 岗巴县| 潜江市| 出国| 六枝特区| 长岛县|