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同步代码块,简单介绍了lock锁及锁的底层知识,结合案例给大家介绍的非常详细,需要的朋友可以参考下2022-04-04
最新评论