时间:2021-05-20
你有没有见过某些网站进行一些删除操作之后,你看不到记录了但是管理员却能够查看到。这里就运用到了逻辑删除。
逻辑删除的本质是修改操作,所谓的逻辑删除其实并不是真正的删除,而是在表中将对应的是否删除标识(deleted)或者说是状态字段(status)做修改操作。比如0是未删除,1是删除。在逻辑上数据是被删除的,但数据本身依然存在库中。
对应的SQL语句:
update 表名 set deleted = 1 where id = 1;语句表示,在该表中将id为1的信息进行逻辑删除,那么客户端进行查询id为1的信息,服务器就不会提供信息。倘若想继续为客户端提供该信息,可将 deleted 更改为 0 。
查找的话呢是通过加上条件deleted=0
来自官网的配置,这里直接复制
这样就会在预编译sql中自动给这个字段设置的值就是全局配置设置的值
当然也可以设置局部生效 单个实体生效(不推荐)只需要在注解中添加
完整的实体示例
import com.baomidou.mybatisplus.annotation.TableLogic;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import java.io.Serializable;import java.time.LocalDateTime;@Data@AllArgsConstructor@NoArgsConstructorpublic class User implements Serializable { private long id; private String name; private long age; private String email; private long managerId; private LocalDateTime createTime; private LocalDateTime updateTime; private long version; @TableLogic(value = "0",delval = "1") //value表示逻辑未删除值,delval表示逻辑删除设置的值 private long deleted; }当然不建议这样操作,一般直接@TableLogic然后通过全局设置即可
测试代码,其中的传入的是主键 刘红雨的id
import org.junit.jupiter.api.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;import top.huashengshu.demo.dao.UserMapper;@SpringBootTest@RunWith(SpringRunner.class)class DemoApplicationTest { @Autowired UserMapper userMapper; @Test public void deleteTest(){ int rows = userMapper.deleteById(1094592041087729666L); System.out.println("影响行数:"+rows); }}执行结果:
查看表中数据:
到此这篇关于MybatisPlus实现逻辑删除功能的文章就介绍到这了,更多相关MybatisPlus 逻辑删除内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1、问题背景:在开发中,我们经常会有逻辑删除和唯一索引同时使用的情况。但当使用mybatisplus时,如果同时使用逻辑删除和唯一索引,会报数据重复Duplic
开发调试的时候发现MybatisPlus的逻辑删除失效了,看了下配置文件发现没有问题,通过查看以下源码发现逻辑删除需要注入的bean,查看这个bean的源码如下
一、需求:实现Springboot中MyBatisplus使用IPage和Page分页二、技术:MyBatisplus的IPage和Page三、实现1、代码结构
上次业务逻辑和展示层的架构都写了,可以开始进行具体功能的实现,这次先实现管理员的登录、验证和注销功能。一、业务逻辑层1、实现256散列加密方法。Ninesky.
实现官方文档说明:com.baomidou.mybatisplus.annotations.TableFieldTableField注解新增属性update预处