MyBatis-Plus中的逻辑删除使用

导读:本篇文章讲解 MyBatis-Plus中的逻辑删除使用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

系列文章目录

Mybatis-Plus+SpringBoot结合运用_心态还需努力呀的博客-CSDN博客
MyBaits-Plus中@TableField和@TableId用法_心态还需努力呀的博客-CSDN博客

MyBatis-Plus分页查询(快速上手运用)_心态还需努力呀的博客-CSDN博客_mybatis plus分页查询

MyBatis-Plus中自动填充功能的用法_心态还需努力呀的博客-CSDN博客 

MyBatis-Plus条件构造器[常用的模糊查询、排序查询、逻辑查询和指定字段查询案例]_心态还需努力呀的博客-CSDN博客_mybatisplus排序查询

注:上述所列只是部分文章,本系列还在更新中~感兴趣可看专栏哦~  


文章目录

目录

系列文章目录

文章目录

前言

一、修改表结构

二、User实体中添加属性

三、配置

四、测试

总结


前言

开发系统时,有时候在实现功能时,删除操作需要实现逻辑删除就是将数据标记为删除,而并非真的物理删除(非DELETE操作),查询时需要携带状态条件,确保被标记的数据不被查询到。这样做的目的就是避免数据被真正的删除。

MP就提供了这样的功能,方便我们使用,接下来我们一起学习下~


一、修改表结构

为user表增加deleted字段,用于表示数据是否被删除,1代表删除,0代表未删除。sql代码如下

USE study;
ALTER TABLE user 
ADD COLUMN deleted int(1) NULL DEFAULT 0 COMMENT '1代表删除,0代表未删除' AFTER user_status;

添加后的效果图展示:

MyBatis-Plus中的逻辑删除使用

二、User实体中添加属性

增加deleted属性并且添加@TableLogic注解

//标记字段
    @TableLogic
    private Integer deleted;

三、配置

在application.properties下配置删除字段的标记,默认就是删除为1,未删除就为0。这个具体值大家可以修改,按开发要求即可。要是就是用默认值的话其实不配置下面的代码也可以执行的。

#删除标记为1
mybatis-plus.global-config.db-config.logic-delete-value=1
#未删除标记为0
mybatis-plus.global-config.db-config.logic-not-delete-value=0

四、测试

编写测试类,在测试类下编写testDeleteById方法,删除id为12的用户信息。删除成功后查询表中的数据查看是否能查询到id为12的结果。

/**
     * 删除操作
     * */
    //根据id删除
    //int deleteById(Serializable id);
    @Test
    public void testDeleteById() {
        int result = this.userMapper.deleteById(12);
        if(result>0){
            testSelectList();
            System.out.println("删除成功!");
        }else {
            System.out.println("删除失败!");
        }
    }

效果图:

1. 查看日志会发现,第一个删除生成的sql代码其实是修改,只是将deleted字段等于0的条件下设置了deleted字段标记为1。

2. 查看日志,第二个查询的结果自动生成的sql代码中也自动添加了条件为deleted字段等于0。如下如图所示。

MyBatis-Plus中的逻辑删除使用

3. 通过查询输出的结果可发现查不到id为12的数据。如下图所示:

MyBatis-Plus中的逻辑删除使用

 4. 我们从数据库中查看数据表的信息,会发现id为12的数据deleted字段已经被标记为1。所以不会查询到,但本身的数据没有真正的被删除(还存在数据库中)。

MyBatis-Plus中的逻辑删除使用


总结

在实际的开发中也是这样的,当用户点完删除数据信息后以为删除掉了,但实际上没你们想的那么简单。你的数据在数据库中不会轻易的删除掉的。只是不会显示在用户页面而已。大多数的开发其实都是这样,所以说该知识点也是很重要的。MP简化了我们的开发,的确可以体会到~

这就是逻辑删除的用法。做一个项目练练手就会了,相对而言比较好掌握。大家加油学起来~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/114633.html

(0)
Java光头强的头像Java光头强

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!