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
二维码