使用MyBatis-Plus updateById方法无法更新空字符串/空问题怎么解决

  介绍

使用MyBatis-Plus updateById方法无法更新空字符串/空问题怎么解决?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<强>一、简介

因为最近在忙项目,好久都没有更新博客,最近在项目中刚好遇到一个问题,就是在使用MyBatis-Plus updateById (xxx)的时候,居然更新不了字符串或者空,本文分享两种解决方案,具体大家可以根据自己的需求选择一种方法解决。

在实际项目中,难免更新的时候,有可能会把已有的值更新成空字符串或者空,但是当你使用updateById()方法的时候,会发现根本不生效。这其实是MyBatis-Plus对字段的验证策略导致的,MyBatis-Plus默认进行了不是全量更新的策略,查阅官网发现有一个属性:因为笔者使用的是springboot、下面是MyBatis-Plus配置文件:

 mybatis-plus:
  配置:
  #字段策略0:“忽略判断“,1:“非NULL判断“),2:“非空判断“;
  field-strategy: 1 

这个字段验证策略默认是1,即不是零,更新的时候做了空判断,默认不更新为零的传参。

field-strategy字段更新插入策略属性说明:

    <李>忽略(0):“忽略判断“,所有字段都更新和插入李 <>李NOT_NULL(1):“非NULL判断“,只更新和插入非NULL值 <李> NOT_EMPTY(2):“非空判断“,只更新和插入非NULL值且非空字符串李 <李>默认值:默认NOT_NULL
      李,

field-strategy字段更新插入策略属性说明:

    <李>忽略(0):“忽略判断“,所有字段都更新和插入李 <>李NOT_NULL(1):“非NULL判断“,只更新和插入非NULL值 <李> NOT_EMPTY(2):“非空判断“,只更新和插入非NULL值且非空字符串李 <李>默认值:默认NOT_NULL李

使用MyBatis-Plus updateById方法无法更新空字符串/空问题怎么解决

<强>【第一种方法】:全局配置方式

在MyBatis-Plus配置文件中修改field-strategy字段验证的值为0,即忽略判断。

使用MyBatis-Plus updateById方法无法更新空字符串/空问题怎么解决

记住,光设置这个是不会进行判断了,但是你会发现更新插入操作的时候还是会报的错,会报jdbcType不允许为空,这个时候,你需要确保你的阿宝对象(即@TableField (value=https://www.yisu.com/zixun/XSID)修饰字段的时候,还需要加入el属性,每个属性对应数据库的jdbcType类型,这样才能成功更新空值或NULL。如下图:

使用MyBatis-Plus updateById方法无法更新空字符串/空问题怎么解决

<强>【第二种方法】:如果你设置的字段验证策略为非空判断

使用MyBatis-Plus updateById方法无法更新空字符串/空问题怎么解决

这个时候你会发现可以更新空字符串& # 39;& # 39;但是一些比如日期等对象类型的设置空是要设置为零的,你会发现一样更新不了空,

由于表中的字段基本上都是varchar字符类型的,所以这个时候可以在订单中对类型为对象类型的属性通过注解对对象类型的属性单独设置字段验证策略为忽略如下图:

使用MyBatis-Plus updateById方法无法更新空字符串/空问题怎么解决

这样就可以成功更新值为null或者空字符串& # 39;& # 39;了,问题解决。

关于使用MyBatis-Plus updateById方法无法更新空字符串/空问题怎么解决问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

使用MyBatis-Plus updateById方法无法更新空字符串/空问题怎么解决