MyBatis-Plus将字段修改为空值的解决方案

 更新时间:2023年12月05日 11:06:40   作者:眼里有星辰L  
这篇文章主要介绍了MyBatis-Plus将字段修改为空值的解决方案,本文给大家分享三种常用的解决方案,感兴趣的朋友一起看看吧

MyBatis-Plus如何将字段修改为空值

共有三种常用解决方案

方案一:修改全局更新策略(不推荐)

mybatis-plus:
	global-config:
		#字段策略 IGNORED:"忽略判断"、NOT_NULL:"非NULL判断"、NOT_EMPTY:"非空判断"
    	field-strategy: IGNORED

不推荐使用原因:作用范围太广,调用MyBatis-Plus封装的update会不经意将字段改为空

方案二:修改指定字段的更新策略(不推荐)

@TableField(strategy = FieldStrategy.IGNORED)
private String name;

不推荐使用原因:相对于方案一作用范围相对较小,但调用MyBatis-Plus封装的update也会不经意将字段改为空

方案三:使用LambdaUpdateWrapper只在特定需求下做处理(推荐)

Order order = new Order();
order.setId(1);
order.setPrice(3.8)
order.setName(null)
LambdaUpdateWrapper<Order> lambdaUpdate = Wrappers.lambdaUpdate();
//构建where条件根据id修改
lambdaUpdate.eq(Order::getId, order.getId()); 
//name属性为空时可以修改字段为NULL
if (StringUtils.isEmpty(order.getName())) lambdaUpdate.set(Order::getName, null); 
//此时生成的SQL语句为update order set price = 3.8, name = null where id = 1
super.update(order, lambdaUpdate);

推荐原因:不影响任何地方只在此处生效

补充:

Mysql中创建表字段允许空值NULL和不允许空值NULL

mysql如何修改字段允许为空

修改字段允许为空

alter table 表名 modify 字段名 字段类型 null;

MODIFY功能是修改字段属性,只是alter功能下的一个功能模块.

alter table employees MODIFY  name  varchar(14)  null;

将字段数据为空

update 表名 ser 字段名 = null where 条件

update employees set date = null where id ='10001';

Null与空值的区别

1、对象的内容不同

null表示对象的内容为空,即对象的内容是空白的。

空值表示对象的内容无法确定。

2、对象的值不同

null表示对象计算中具有保留的值,用于指示指针不引用有效对象。

空值表示值未知,空值一般表示数据未知、不适用或将在以后添加数据。

创建MySql数据表,

 create table student(
    id varchar(10) primary key NOT NULL ,
    name varchar(20) NOT NULL,  //不允许为空
    Info varchar(50) NULL   //允许为空
);

为字段设置允许空值NULL和不允许空值NOT NULL

到此这篇关于MyBatis-Plus如何将字段修改为空值的文章就介绍到这了,更多相关MyBatis-Plus字段修改为空值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • springboot整合redis集群过程解析

    springboot整合redis集群过程解析

    这篇文章主要介绍了springboot整合redis集群过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 详解Spring中的拦截器与过滤器

    详解Spring中的拦截器与过滤器

    Filter 过滤器和Interceptor 拦截器是SpringBoot 的 Web 项目开发中长用到的,本文主要来和大家讨论一下 Filter 与 Interceptor 的做法及它们之间的区别,需要的可以参考下
    2023-07-07
  • SpringMVC中的ResourceUrlProviderExposingInterceptor详解

    SpringMVC中的ResourceUrlProviderExposingInterceptor详解

    这篇文章主要介绍了SpringMVC中的ResourceUrlProviderExposingInterceptor详解,ResourceUrlProviderExposingInterceptor是Spring MVC的一个HandlerInterceptor,用于向请求添加一个属性,需要的朋友可以参考下
    2023-12-12
  • Java BigDecimal类的使用和注意事项

    Java BigDecimal类的使用和注意事项

    这篇文章主要讲解Java中BigDecimal类的用法,并简单介绍一些注意事项,希望能给大家做一个参考。
    2016-06-06
  • Java实现文件批量重命名具体实例

    Java实现文件批量重命名具体实例

    这篇文章主要介绍了Java实现文件批量重命名具体实例,需要的朋友可以参考下
    2014-02-02
  • Java使用Jdom读取xml解析实例

    Java使用Jdom读取xml解析实例

    这篇文章主要介绍了Java使用Jdom读取xml解析,以实例形式较为详细的分析了Jdom操作XML文件实现读取操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • SpringBoot3整合mybatis-plus的实现

    SpringBoot3整合mybatis-plus的实现

    MyBatis-Plus是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,本文主要介绍了Mybatis-Plus3.x的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • java多线程join()方法的作用和实现原理解析(应用场景)

    java多线程join()方法的作用和实现原理解析(应用场景)

    join方法主要是用于将当前线程挂起,等待其他线程结束后在执行当前线程,本文通过应用场景分析代码示例讲解java多线程join()方法的作用和实现原理,感兴趣的朋友一起看看吧
    2021-07-07
  • Java图片转字符图片的生成方法

    Java图片转字符图片的生成方法

    本文主要实现了将一张图片转成字符图片,同样可以遍历每个像素点,然后将像素点由具体的字符来替换,从而实现字符化处理,感兴趣的可以了解一下
    2021-11-11
  • Nacos日志与Raft的数据清理指南

    Nacos日志与Raft的数据清理指南

    随着运行时间的增长,Nacos 的日志文件(logs/)和 Raft 持久化数据(data/protocol/raft/)可能会占用大量磁盘空间,影响系统稳定性,本文详细探讨Nacos日志与Raft如何安全释放磁盘空间,需要的朋友可以参考下
    2025-05-05

最新评论