c语言编程笔录

首页 >   > 笔记大全

笔记大全

mybatisplus的逻辑删除问题怎么解决

更新时间:2023-10-30

MyBatis Plus 简介

MyBatis Plus(以下简称MP)是一个强大的 MyBatis 增强工具,简化了 MyBatis 操作,提供了常用的 CRUD(增/删/改/查)和分页插件。MP的逻辑删除问题主要是出现在删除数据时,并未真正删除,而是进行了标记,用于标识该数据已被删除,但仍然保留在数据库中。

MP逻辑删除功能的使用

MP的逻辑删除功能默认是关闭的,需要在实体类中添加@TableLogic注解,开启逻辑删除功能。

public class User {
    private Long id;
    private String name;
    private Integer age;
    private Integer deleted; // 逻辑删除标志位

    // getter/setter
}

// 开启逻辑删除
@TableLogic(delval = "1", value = "0")
private Integer deleted;

MP逻辑删除功能的实现方式

MP的逻辑删除功能实现是通过SQL解析器来实现的。MySqlParser和DruidParser两种解析器都支持逻辑删除,使用时需要在配置文件中开启。

MP逻辑删除功能的配置

在 application.properties 或 application.yml 中添加如下配置项:

# 开启 MP 逻辑删除
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0

总结

通过MyBatis Plus提供的@TableLogic注解和SQL解析器,MP逻辑删除功能可以轻松实现。在使用时需要开启相应配置,并在实体类中添加@TableLogic注解。有了逻辑删除功能,可以在删除数据时标记该数据已被删除,并且不会真正删除数据,从而实现数据不丢失的同时,对数据进行实时应用。