mybatis-plus的update方法,到底会不会更新null值?看这一篇就够了

普通的设置值。需要传入一个Wrapper对象

默认情况下是不会更新null值的,也就是只更新设置值的字段

```

复制代码
	LambdaUpdateWrapper<OrderChildRoom> orderChildRoomUpdateWrapper = new LambdaUpdateWrapper<>();
	orderChildRoomUpdateWrapper.set(OrderChildRoom::getRemark,req.getRemark());
	orderChildRoomUpdateWrapper.eq(OrderChildRoom::getId,req.getId());
	orderChildRoomService.update(orderChildRoomUpdateWrapper);
```

设置字段reamrk的值,只会更新这个字段,使用id作为查询条件 。

还有一种使用方式

复制代码
		orderChildRoom.setRemark("aaa");
		LambdaUpdateWrapper<OrderChildRoom> orderChildRoomUpdateWrapper = new LambdaUpdateWrapper<>();
		orderChildRoomUpdateWrapper.set(OrderChildRoom::getRemark,"bbb");
		orderChildRoomUpdateWrapper.eq(OrderChildRoom::getId,5);
		orderChildRoomService.update(orderChildRoom,orderChildRoomUpdateWrapper);

传入一个对象,和wrapper, 两个对象如果都对字段进行了赋值,那么会更新字段。比如现在都写入了remark字段,那么以wrapper的为准,sql会变成

复制代码
UPDATE user SET remark="aaa", remark="bbb"  WHERE (id = 5);

mysql处理以后面的为准,也就是wrapper为准

结论: 默认不会更新null对象字段。 使用后一种方式,字段都会更新,如果字段重复,使用wrapper为准。

相关推荐
胡斌附体22 天前
mybatis-plus逻辑删除配置
java·mybatis·mybatis-plus·逻辑删除
追风少年浪子彦23 天前
mybatis-plus实体类主键生成策略
java·数据库·spring·mybatis·mybatis-plus
●VON23 天前
重生之我在暑假学习微服务第二天《MybatisPlus-下篇》
java·学习·微服务·架构·mybatis-plus
执笔诉情殇〆25 天前
SpringBoot3(若依框架)集成Mybatis-Plus和单元测试功能,以及问题解决
java·spring boot·junit·mybatis-plus
岁岁岁平安4 个月前
基于SpringBoot3实现MyBatis-Plus(SSMP)整合快速入门CURD(增删改查)
java·spring boot·spring·java-ee·mvc·mybatis·mybatis-plus
依旧很淡定5 个月前
14-SpringBoot3入门-MyBatis-Plus之CRUD
mybatis-plus·crud
我要学编程(ಥ_ಥ)5 个月前
初始JavaEE篇 —— Mybatis-plus 操作数据库
java·java-ee·mybatis·mybatis-plus
救救孩子把5 个月前
MyBatis-Flex、MyBatis-Plus 与 Fluent-Mybatis 的比较分析
java·mybatis·mybatis-plus·mybatis-flex·fluent-mybatis
码熔burning5 个月前
MyBatis-Plus 自动填充:优雅实现创建/更新时间自动更新!
java·mybatis·springboot·mybatis-plus
奔跑吧邓邓子5 个月前
【商城实战(25)】解锁UniApp移动端适配秘籍,打造完美商城体验
uni-app·springboot·mybatis-plus·移动端适配·商城实战