Mybatis和Mybatis-plus实现逻辑删除

什么是物理删除,什么是逻辑删除?

物理删除就是直接干掉数据库的数据,无法再恢复回来。但在企业级项目中,物理删除已经非常少见,而是使用逻辑删除。逻辑删除本质上是个update操作,通过一个标记字段来识别某个数据是否被隐藏起来,但是对于用户来说看不到了自然以为就是删除了。

前置准备:

数据库新建user表,用deleted来作为逻辑删除标志,0表示未删除,1表示已删除;

然后设置默认为0(未删除)

再随便添加一些测试数据。

创建项目,导入相关依赖(略)。

看一下Mybatis-plus是如何进行逻辑删除的

通过deleteById来进行物理删除

可以看到id为2的数据已经看不见了

逻辑删除:

逻辑删除本质上是个update操作,通过删除标记来识别某个数据是否被隐藏起来,假设在表中设置一个deleted字段,已删除用1表示,未删除用0表示,这样以后在每次查询数据时候,都会添加一个条件 where deleted = 0,这样就永远不会查出 deleted= 1的数据。

第一步在实体类添加该字段,并加上注解@TableLogic,该注解就表示逻辑删除位。

第二步,我们需要写一个配置类来开启mybatis-plus的逻辑删除。 MybatisConfig.java发现找不到依赖,上网查询发现,高版本MP自带逻辑删除,已经不需要手动配置了。

我们直接用deleteById()方法测试。

发现方法并没有变,只是添加了@TableLogic注解,就会使用逻辑删除

再看数据库,id为11的数据并没有被删除,还存在数据库中

这样逻辑删除就成功了,最后,我们直接查询全部数据:

此时sql中自动添加了where deleted = 0 来帮我们查询未删除的所有数据。

mybatis和mybatis-plus的原理一致,只是手动在xml文件里面添加条件判断,删除的时候使用update修改删除标志就行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值