mybatis-plus的逻辑删除

逻辑删除一般是在数据库中添加这样一个字段,默认情况下值为0,一旦进行删除操作则将其值变1,这样这条数据在数据库中仍然存在,但是前端查询无法查到结果。

1.添加表示逻辑删除的注解

数据库表中添加字段has_delete设置其默认值为0,表示没有进行逻辑删除。1,表示已经进行了逻辑删除。
在这里插入图片描述

类属性上添加@TableLogic注解
在这里插入图片描述

2.删除测试

我们以id为14的Tom为例

2.1首先进行查询

test查询的代码

  //selectByMap可以一次查多条数据,也可以只拿确切的一条数据
        HashMap<String, Object> map = new HashMap<>();
        map.put("stu_name","tom");
        map.put("age",63);
        
        List<Students> students1 = studentsMapper.selectByMap(map);
        for (Students students2 : students1) {
            System.out.println("students2 = " + students2);
        }

在这里插入图片描述
查看执行的sql语句,发现mybatis-plus自动在条件上添加了has_delete=0的判断语句。
这时候是有查询结果的。
在这里插入图片描述

2.2然后进行删除

删除代码

  @Test
    void deleteWrap(){
        QueryWrapper<Students> wrapper = new QueryWrapper<>();
        wrapper.eq("stu_name","tom")
                .eq("age",63);
        int delete = studentsMapper.delete(wrapper);
        System.out.println("delete = " + delete);
    }

运行:删除操作这里变成了更新操作
在这里插入图片描述
返回结果为1
在这里插入图片描述

2.3然后查看数据库

查看数据库发现has_delete参数变为1
在这里插入图片描述

2.4然后再次查询

再一次进行查询,因为mybatis-plus自动拼接条件has_delete=0因此结果应该为0
在这里插入图片描述
也就是查询不到数据了。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>