返回

MyBatis-Plus逻辑删除和字段自动填充,带你全面掌握

前端

逻辑删除

什么是逻辑删除

逻辑删除是一种软删除技术,它不会真正从数据库中删除数据,而是将数据的某个字段标记为“已删除”,这样数据就不会在常规查询中显示,但仍然可以在数据库中找到。逻辑删除通常用于需要保留历史数据的情况,例如用户数据、订单数据等。

MyBatis-Plus的逻辑删除

MyBatis-Plus提供了逻辑删除的支持,可以通过在实体类中添加@TableLogic注解来实现。@TableLogic注解有三个属性:

  • value:逻辑删除字段的名称,默认为“is_deleted”。
  • delval:逻辑删除值,默认为0。
  • type:逻辑删除字段的类型,默认为java.lang.Integer

例如,以下代码演示了如何在实体类中使用@TableLogic注解来实现逻辑删除:

@TableLogic
private Integer deleted;

使用逻辑删除

在使用逻辑删除时,需要在查询条件中添加逻辑删除字段的判断条件,这样才能查询出未被删除的数据。例如,以下代码演示了如何使用逻辑删除来查询未被删除的数据:

Wrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("deleted", 0);
List<User> userList = userService.list(wrapper);

字段自动填充

什么是字段自动填充

字段自动填充是指在数据插入或更新时,自动为某个字段赋值。字段自动填充可以节省开发人员的手动操作,提高开发效率。

MyBatis-Plus的字段自动填充

MyBatis-Plus提供了字段自动填充的支持,可以通过在实体类中添加@TableField注解来实现。@TableField注解有几个属性:

  • fill:自动填充的策略,可以是INSERTUPDATEINSERT_UPDATE
  • value:自动填充的值,可以是固定的值,也可以是某个字段的值。
  • convert:自动填充的值的转换器,用于将值转换为所需的数据类型。

例如,以下代码演示了如何在实体类中使用@TableField注解来实现字段自动填充:

@TableField(fill = FieldFill.INSERT)
private Date createTime;

使用字段自动填充

在使用字段自动填充时,需要在实体类中添加@TableField注解来指定要自动填充的字段。在数据插入或更新时,MyBatis-Plus会自动为这些字段赋值。

总结

MyBatis-Plus的逻辑删除和字段自动填充特性可以帮助开发人员简化数据操作,提高开发效率。本文对这两个特性进行了详细的介绍,并通过代码示例演示了如何使用它们。希望本文能够帮助读者掌握MyBatis-Plus的逻辑删除和字段自动填充特性,并将其应用于实际项目中。