返回
MyBatis-Plus逻辑删除和字段自动填充,带你全面掌握
前端
2023-10-23 03:55:15
逻辑删除
什么是逻辑删除
逻辑删除是一种软删除技术,它不会真正从数据库中删除数据,而是将数据的某个字段标记为“已删除”,这样数据就不会在常规查询中显示,但仍然可以在数据库中找到。逻辑删除通常用于需要保留历史数据的情况,例如用户数据、订单数据等。
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:自动填充的策略,可以是
INSERT
、UPDATE
、INSERT_UPDATE
。 - value:自动填充的值,可以是固定的值,也可以是某个字段的值。
- convert:自动填充的值的转换器,用于将值转换为所需的数据类型。
例如,以下代码演示了如何在实体类中使用@TableField注解来实现字段自动填充:
@TableField(fill = FieldFill.INSERT)
private Date createTime;
使用字段自动填充
在使用字段自动填充时,需要在实体类中添加@TableField注解来指定要自动填充的字段。在数据插入或更新时,MyBatis-Plus会自动为这些字段赋值。
总结
MyBatis-Plus的逻辑删除和字段自动填充特性可以帮助开发人员简化数据操作,提高开发效率。本文对这两个特性进行了详细的介绍,并通过代码示例演示了如何使用它们。希望本文能够帮助读者掌握MyBatis-Plus的逻辑删除和字段自动填充特性,并将其应用于实际项目中。