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
在这里插入图片描述
也就是查询不到数据了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值