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为准。

相关推荐
silence25015 天前
MyBatis-Plus 报错 Invalid bound statement(insert)?其实是 SqlSessionFactoryBean 踩坑了
mybatis·mybatis-plus
爱学习的小可爱卢20 天前
JavaEE进阶——MyBatis-Plus新手完全攻略
java·mybatis-plus
言一木25 天前
mybatis-plus分表实现案例
springboot·mybatis-plus·水平分表
YDS8291 个月前
MyBatis-Plus精讲 —— 从快速入门到项目实战
java·后端·spring·mybatis·mybatis-plus
m0_564264182 个月前
IDEA DEBUG调试时如何获取 MyBatis-Plus 动态拼接的 SQL?
java·数据库·spring boot·sql·mybatis·debug·mybatis-plus
optimistic_chen2 个月前
【Java EE进阶 --- SpringBoot】Mybatis - plus 操作数据库
数据库·spring boot·笔记·java-ee·mybatis·mybatis-plus
人间有清欢3 个月前
扩展BaseMapper类
java·mybatis-plus·mp
endcy20164 个月前
mybatis-plus多租户兼容多字段租户标识
java·mybatis-plus·多租户
辗转反侧着疑惑4 个月前
MyBatis Plus 【详解】| 学习日志 | 第 17 天
java·开发语言·学习·mybatis·mybatis-plus
未聞花名丶4 个月前
Idea2025.2 MybatisX插件失效问题
idea·mybatis-plus·mybatisx