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

相关推荐
kong79069282 小时前
MybatisPlus入门(十)MybatisPlus-逻辑删除和多记录操作
mybatis-plus
kong79069286 天前
MybatisPlus入门(八)MybatisPlus-DQL编程控制
mybatis-plus
珍珠是蚌的眼泪6 天前
MyBatis-Plus
mybatis·mybatis-plus
水蓝烟雨12 天前
整合Mybatis-plus及最佳实践
mybatis-plus
cyt涛14 天前
主键冲突问题
数据库·mybatis·事务·mybatis-plus·主键·id·冲突
cyt涛21 天前
公共字段自动填充-MyBatis-Plus
java·数据库·mybatis·mybatis-plus·threadlocal·自动填充·公共字段
Damon小智22 天前
SpringCloud-持久层框架MyBatis Plus的使用与原理详解
sql·spring·spring cloud·mybatis·mybatis-plus
yb0os11 个月前
MybatisPlus
数据库·oracle·mybatis·mybatis-plus
罗曼蒂克在消亡1 个月前
Mybatis-plus做了什么
java·mybatis·mybatis-plus
芝法酱2 个月前
芝法酱学习笔记(0.3)——SpringBoot下使用mybatis做增删改查和报表
spring boot·mysql·mybatis·mybatis-plus