MyBatisPlus之逻辑删除

逻辑删除

你有没有见过某些网站进行一些删除操作之后,你看不到记录了但是管理员却能够查看到。这里就运用到了逻辑删除。
什么是逻辑删除?
逻辑删除的本质是修改操作,所谓的逻辑删除其实并不是真正的删除,而是在表中将对应的是否删除标识(deleted)或者说是状态字段(status)做修改操作。比如0是未删除,1是删除。在逻辑上数据是被删除的,但数据本身依然存在库中。
对应的SQL语句:

update user set deleted=1 where id =1 and deleted=0

update 表名 set deleted = 1 where id = 1;语句表示,在该表中将id为1的信息进行逻辑删除,那么客户端进行查询id为1的信息,服务器就不会提供信息。倘若想继续为客户端提供该信息,可将 deleted 更改为 0 。
查找的话呢是通过加上条件deleted=0

select * from user where deleted=0

我们来看一下逻辑删除在springboot中如何使用
application.yml 加入配置(如果你的默认值和mp默认的一样,该配置可无):

mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: flag  #全局逻辑删除字段值 3.3.0开始支持,详情看下面。
      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

实体类字段上加上@TableLogic注解

@TableLogic
private Integer deleted;

说明:

字段支持所有数据类型(推荐使用 Integer,Boolean,LocalDateTime)
如果使用LocalDateTime,建议逻辑未删除值设置为字符串null,逻辑删除值只支持数据库函数例如now()
再来编写测试,往下看

MyBatisPlus之逻辑删除_第1张图片
打印输出sql是update,把逻辑删除字段更新了
在这里插入图片描述
既然实现了逻辑删除,当你每次查询的时候mybatisplus都会带上deleted字段
上面有展示sql。

注意转载需声明源作者

你可能感兴趣的:(MyBatisPlus)