逻辑删除

你有没有见过某些网站进行一些删除操作之后,你看不到记录了但是管理员却能够查看到。这里就运用到了逻辑删除。
什么是逻辑删除?
逻辑删除的本质是修改操作,所谓的逻辑删除其实并不是真正的删除,而是在表中将对应的是否删除标识(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()
再来编写测试,往下看


打印输出sql是update,把逻辑删除字段更新了

既然实现了逻辑删除,当你每次查询的时候mybatisplus都会带上deleted字段
上面有展示sql。

注意转载需声明源作者

MyBatisPlus之逻辑删除相关推荐

  1. mybatis-plus @TableLogic 逻辑删除 恢复 自定义方法

    目标: mybatis-plus @TableLogic 逻辑删除 后的数据不能用 mybatis-plus的方法恢复,又不想写sql 所以用 mybatis-plus 的自定义方法解决这个问题 直接 ...

  2. MybatisPlus实现逻辑删除

    delete 根据id删除记录 //查询user表所有数据 @Test public void findAll() {List<User> users = userMapper.selec ...

  3. mybatis-plus配置逻辑删除

    在实际操作中,删除操作并不是真实的物理删除,而是逻辑删除,在数据库表中添加一列 deleted 字段表明数据是否被删除. entity 对象中在 deleted 字段添加 @TableLogic // ...

  4. java web逻辑删除代码_MyBatis-Plus之逻辑删除的实现

    特别是互联网项目,对于数据一般是不能删除的(涉及到后面的数据分析),这就涉及到逻辑删除.所谓逻辑删除指的是数据并不是真正的删除,只是改数据表对应数据的状态(数据表中通常有一列叫delFlag,以此标识 ...

  5. mybatisplus逻辑删除

    逻辑删除 SpringBoot 配置方式: application.yml 加入配置(如果你的默认值和mp默认的一样,该配置可无): mybatis-plus:global-config:db-con ...

  6. MyBatis-Plus 乐观锁 防止超卖、逻辑删除、自动填充、Id自增

    MyBatis-Plus 乐观锁 防止超卖.逻辑删除.自动填充 Day3 前面的简单的讲了一下mybatis-plus的使用 当然有很多不足 我写博客就是想促进大家一起学习 也想让这些内容更简单一些. ...

  7. MyBatisPlus中开启了逻辑删除则更新逻辑字段不再管用

    场景 MyBatisPlus中全局Sql注入器应用_逻辑删除使用MyBatisPlus中全局Sql注入器应用_逻辑删除使用: https://blog.csdn.net/BADAO_LIUMANG_Q ...

  8. MyBatisPlus中全局Sql注入器应用_逻辑删除使用

    场景 项目搭建专栏: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/37194 MyBatisPlus中自定义全局操作流程: https: ...

  9. MyBatis-Plus 高级功能 —— 实现逻辑删除

    一.引言 逻辑删除,顾名思义就是通过逻辑判断的手段表示该条数据已删除. 二.具体实现 删除功能是项目中经常见到的需求,比如需要删除某一件商品,删除一个订单,但往往不会把实际数据删除,而是选择逻辑删除来 ...

  10. mybatis-plus逻辑删除数据后依然能够查出该数据

    问题:逻辑删除后的数据依然能够查询的到 我的出错原因: 在pojo类中的@TableLogic注解中加了value属性,导致mybatis-plus生成的sql语句的条件一直是where delete ...

最新文章

  1. django学习教程
  2. LVI-SAM:紧耦合的激光视觉惯导SLAM系统(Tixiao Shan新作,已开源)
  3. 俄罗斯网络安全治理及其启示
  4. 热点推荐:程序员路在何方
  5. 20145233《Java程序设计》课程总结
  6. request设置请求头_收藏 Scrapy框架各组件详细设置
  7. could not change product header data even after switching to change mode
  8. 【C++ Priemr | 15】虚函数常见问题
  9. ReactJs 第四章组件组件props
  10. cocos2dx 简单血量条实现
  11. 2019青海大学计算机调剂,2019青海大学招收硕士研究生调剂公告
  12. pathway一些网站
  13. 临床试验中样本量确定的统计学考虑
  14. Lattice Diamond在线调试Reveal Analyzer使用教程
  15. gif图片分解成序列帧(PS)
  16. 南卡和声阔蓝牙耳机哪个比较好用?降噪效果好的蓝牙耳机推荐
  17. Linux 中 $符号是什么意思,代表什么含义
  18. MAYA建模桌面一角_maya多边形建模实例-制作茶几步骤
  19. Elasticsearch 数据迁移方案
  20. R语言逻辑操作符:、|、!、||

热门文章

  1. jsp+ssm+mysql实现图书馆预约占座管理系统 代码+数据库脚本+论文+答辩稿+开题报告+任务书
  2. html复选框,不打勾默认值是0,打钩默认值是1,方框打钩符号复制(一招教你方框里打勾的符号)...
  3. go语言:sync.Once的用法
  4. 转行做软件测试的原因
  5. 产品研发流程的四个里程碑
  6. 华为服务器型号分类,华为服务器型号介绍
  7. network secruity studay day2
  8. 2022-2028全球与中国电池级硫酸锰市场现状及未来发展趋势
  9. python爬取天天基金网_Python爬虫日记二:爬取天天基金网
  10. 【行业聚焦】畅捷通用自然语言技术颠覆企业应用人机交互模式!