Mybatis-Plus 的updateById(T entity)方法
文档地址 https://baomidou.com/guides/data-interface/#update
简介
updateById(shop) 是 MyBatis-Plus 提供的一个便捷方法,用于根据实体对象的主键 ID 更新对应的数据库记录。
为什么传入 shop 就可以?
在 MyBatis-Plus 中,updateById 方法的签名如下:
int updateById(@Param(Constants.ENTITY) T entity);
这里的 T 是实体类的类型,entity 是包含更新数据的对象。当你调用 updateById(shop) 时,MyBatis-Plus 会:
- 从
shop对象中提取主键字段的值(通常是id字段)。 - 根据主键值生成 SQL 语句中的
WHERE条件。 - 将
shop对象中非null的字段作为更新内容,生成SET子句。
因此,尽管方法名是 updateById,它实际上是根据传入对象的主键值来定位记录,并使用该对象的非 null 字段更新对应的数据库记录。
注意事项
-
主键字段必须有值:确保
shop对象的主键字段(如id)不为null,否则无法定位要更新的记录。 -
默认不更新
null字段:MyBatis-Plus 默认策略是仅更新非null的字段。如果希望将某些字段更新为null,需要在实体类的字段上使用注解进行配置,例如:@TableField(updateStrategy = FieldStrategy.IGNORED) private String someField;这样配置后,即使
someField为null,也会在更新时包含该字段。 -
自动填充字段的处理:对于需要自动填充的字段(如更新时间),确保在实体类中使用了相应的注解,并在更新操作中正确处理这些字段。
总之,updateById(shop) 是一种简洁的方式,用于根据主键更新记录。只需确保传入对象的主键字段有值,并根据需要配置字段的更新策略,即可灵活地控制更新行为。

浙公网安备 33010602011771号