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字段修改为空值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java并发系列之JUC中的Lock锁与synchronized同步代码块问题

    Java并发系列之JUC中的Lock锁与synchronized同步代码块问题

    这篇文章主要介绍了Java并发系列之JUC中的Lock锁与synchronized同步代码块,简单介绍了lock锁及锁的底层知识,结合案例给大家介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • Java中对List集合的常用操作详解

    Java中对List集合的常用操作详解

    下面小编就为大家带来一篇Java中对List集合的常用操作详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • Java volatile关键字特性讲解上篇

    Java volatile关键字特性讲解上篇

    JMM要求保证可见性、原子性、有序性,volatile可以保证其中的两个,本篇文章具体验证volatile的可见性,不原子性和禁重排,同时解决volatile的不保证原子性,让代码具有原子性
    2022-12-12
  • Spring 自定义propertyEditor的示例代码

    Spring 自定义propertyEditor的示例代码

    这篇文章主要介绍了Spring 自定义propertyEditor的示例代码,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • Java成员变量的隐藏(实例讲解)

    Java成员变量的隐藏(实例讲解)

    下面小编就为大家带来一篇Java成员变量的隐藏(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 详解Java模拟栈的实现以及Stack类的介绍

    详解Java模拟栈的实现以及Stack类的介绍

    栈是一种数据结构,它按照后进先出的原则来存储和访问数据。Stack是一个类,表示栈数据结构的实现。本文就来和大家介绍一下Java模拟栈的实现以及Stack类的使用,需要的可以参考一下
    2023-04-04
  • SpringBoot静态资源路径配置及主页显示

    SpringBoot静态资源路径配置及主页显示

    这篇文章主要介绍了SpringBoot静态资源路径配置及主页显示,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 一文掌握Java中的JWT

    一文掌握Java中的JWT

    这篇文章主要介绍了Java中的JWT,JWT的本质就是一个字符串,它是将用户信息保存到一个Json字符串中,然后进行编码后得到一个JWT token,对JWT相关知识感兴趣的朋友一起看看吧
    2022-06-06
  • Spring集成Web环境的实例详解

    Spring集成Web环境的实例详解

    这篇文章主要介绍了Spring集成Web环境,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • java中stream的peek()用法详解

    java中stream的peek()用法详解

    这篇文章主要介绍了java中stream的peek()用法详解,peek的作用是
    改变元素的内部状态,对每个object执行 saveInfomation(object, params),然后把结果收集到一个 List 里,这里涉及到了最终操作,需要的朋友可以参考下
    2024-01-01

最新评论