gpt4 book ai didi

MyBatis-Plus的物理删除和逻辑删除(使用场景)

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章MyBatis-Plus的物理删除和逻辑删除(使用场景)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

物理删除:真实删除,将数据从数据库中删除,删除后查询不到被删除的数据 。

逻辑删除:假删除,方便删除之后的数据恢复 在表中添加一个status字段,作为删除的标准,每次删除时,修改标志位,0代表没有删除,1代表删除 被删除记录的status字段被修改为“被删除状态”(1),删除后还可以查询到数据 。

逻辑删除的使用场景 1.需要进行数据恢复 2.有关联数据,不便删除 。

?
1
2
3
# mysql
//测试逻辑删除
status int null default null
?
1
2
3
4
5
# 实体类
//实现逻辑删除
@TableLogic
@TableField (fill=FieldFill.INSERT)   //为了方便测试
private Integer status;
?
1
2
3
# MpConfig配置类
//status在添加时自动填充默认为0,未被删除状态(1是被删除状态)
this .setFieldValByName( "status" , 0 ,metaObject);
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Test测试类
 
//先添加测试数据
@Test
public 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,即查询的都是没有被删除过的记录,被删除过的记录就不会被查询出来了
@Test
public void testDeleteByLogic(){
     int rows=userMapper.deleteById(1441596779656179713L);     //在做了逻辑删除的配置后,再使用id进行删除,执行的语句变成了修改id=?并且status为0的记录,如果status原来就是1(被删除过了),也不会再被删除,
     System.out.println(rows);
}

先添加测试数据 再测试逻辑删除 。

到此这篇关于MyBatis-Plus的物理删除和逻辑删除(使用场景)的文章就介绍到这了,更多相关MyBatis Plus物理删除和逻辑删除内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://blog.csdn.net/weixin_43908649/article/details/120468706 。

最后此篇关于MyBatis-Plus的物理删除和逻辑删除(使用场景)的文章就讲到这里了,如果你想了解更多关于MyBatis-Plus的物理删除和逻辑删除(使用场景)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com