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

相关推荐
ONEPEICE-ing2 天前
快速入门Springboot+vue——MybatisPlus快速上手
vue.js·spring boot·后端·mybatis·mybatis-plus
归宿乐瑶8 天前
解决 MyBatis Plus 在 PostgreSQL 中 BigDecimal 精度丢失的问题
java·数据库·spring boot·postgresql·mybatis-plus
命运之手18 天前
[ Spring ] Spring Boot Mybatis++ 2025
spring boot·spring·mybatis·mybatis-plus·mybatis++
每天都要进步11 个月前
Mybatis 进阶 / Mybatis—Puls (详细)
mybatis·mybatis-plus
Y编程小白1 个月前
MyBatis-Plus6--MyBatis中的分页插件
java·开发语言·mybatis·mybatis-plus
lihan_freak1 个月前
MyBatisPlus--分页插件
java·spring boot·mybatis-plus
Ming__GoGo2 个月前
MyBatis-plus sql拦截器
java·sql·学习·鉴权·mybatis-plus·过滤·sql拦截
程序猿零零漆2 个月前
SpringCloud系列教程:微服务的未来 (五)枚举处理器、JSON处理器、分页插件实现
java·spring boot·mybatis-plus
程序猿零零漆2 个月前
SpringCloud 系列教程:微服务的未来(三)IService接口的业务实现
java·spring cloud·mybatis-plus
java_学习爱好者2 个月前
mybatis-plus 用法总结
java·spring boot·mybatis·mybatis-plus