MyBatis-Plus的物理删除和逻辑删除怎么用
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了MyBatis-Plus的物理删除和逻辑删除怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。物理删除:真实删除,
千家信息网最后更新 2026年11月01日MyBatis-Plus的物理删除和逻辑删除怎么用
这篇文章主要介绍了MyBatis-Plus的物理删除和逻辑删除怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
物理删除:真实删除,将数据从数据库中删除,删除后查询不到被删除的数据
逻辑删除:假删除,方便删除之后的数据恢复
在表中添加一个status字段,作为删除的标准,每次删除时,修改标志位,0代表没有删除,1代表删除
被删除记录的status字段被修改为"被删除状态"(1),删除后还可以查询到数据
逻辑删除的使用场景
1.需要进行数据恢复
2.有关联数据,不便删除
# mysql//测试逻辑删除status int null default null
# 实体类//实现逻辑删除@TableLogic@TableField(fill=FieldFill.INSERT) //为了方便测试private Integer status;
# MpConfig配置类//status在添加时自动填充默认为0,未被删除状态(1是被删除状态)this.setFieldValByName("status",0,metaObject);# Test测试类//先添加测试数据@Testpublic void testAdd(){ User user=new User(); //没有设置id属性主键自增长,但mybatis-plus会使用主键策略自动生成id值 user.setName("wangwu"); user.setAge(18); user.setEmail("licy@163.com"); int insert=userMapper.insert(user); System.out.println(insert);}//再测试逻辑删除//在表中添加一个status字段,作为删除的标准,每次删除时,修改标志位,0代表没有删除,1代表删除//UPDATE user SET status=1 WHERE id=? AND status=0 查询条件有一个status=0,即查询的都是没有被删除过的记录,被删除过的记录就不会被查询出来了@Testpublic void testDeleteByLogic(){ int rows=userMapper.deleteById(1441596779656179713L); //在做了逻辑删除的配置后,再使用id进行删除,执行的语句变成了修改id=?并且status为0的记录,如果status原来就是1(被删除过了),也不会再被删除, System.out.println(rows);}先添加测试数据
再测试逻辑删除
感谢你能够认真阅读完这篇文章,希望小编分享的"MyBatis-Plus的物理删除和逻辑删除怎么用"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
逻辑
数据
测试
查询
代表
篇文章
物理
字段
状态
数据恢复
标准
标志
配置
不便
价值
兴趣
同时
场景
实体
就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司的优势
互联网与科技金融数据
万易互联网科技
互联网科技股票
宜安科技 互联网金融
火传媒上海互联网科技
互联网科技博客
互联网科技博主是什么意思
北京大学互联网科技怎么样
贵州叶脉互联网科技有限公司所属行业
互联网科技产业特征
深圳市优智互联网科技有限公司
为客找房互联网科技公司怎么样
云南省自由互联网科技有限公司
领航科技大厦互联网公司
2021世界互联网领先科技成果发布
南京一网一红互联网科技有限公司
济南小医互联网科技有限公司招聘
上海互联网科技园景观
优雇互联网科技有限公司
华服互联网科技靠谱吗
互联网科技咨询
上海电发互联网科技有限公司
互联网金融科技公司干啥的
福建科技产业互联网发展
互联网科技和法律行业
互联网科技资金流入
珠海东科互联网科技有限公司
安徽零酒互联网科技有限公司
互联网的黑科技实验室
