前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mybatis-plus逻辑删除

mybatis-plus逻辑删除

作者头像
许喜朝
发布2020-08-11 16:29:38
8260
发布2020-08-11 16:29:38
举报

mybatis-plus:逻辑删除

不做真正的删除,在查询时添加一个where条件

例如在某宝上有一条不可描述的购买信息不想被看到,你要删除他,但是从平台的角度考虑是不能随便就彻底的删除掉数据的,那么有没有一个两个都可以满足的解决方式呢,答案是有的——逻辑删除,不做真正意义的删除,在数据库中用一个字段做专门的标记,原本查询的sql语句就变成了这样:

select * from tableName where 原先的查询条件 and 用来标记的字段=设定的用于标记删除的值

而用户的删除行为也变成了update: update tablename set 用来标记的字段=设定的用于标记删除的值 where 用于删除的条件

配置

在application.yml配置文件中配置

代码语言:javascript
复制
mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: flag  # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

修改数据库字段

新增一个deleted字段,注意不能使用delete会报错

修改实体类Car并在该属性上打上@TableLogic注解

代码语言:javascript
复制
@TableLogic
    private Integer deleted;

运行测试:

代码语言:javascript
复制
//根据id删除
@Test
void testDeleteById(){
    autoMapper.deleteById(25);
}

运行测试方法,deleted字段被更新 以后的查找方法会被加上一个where条件 deleted=0;

从逻辑上实现了数据的删除

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • mybatis-plus:逻辑删除
    • 配置
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档