配置mybatis-plus逻辑删除

本文介绍如何在MyBatis Plus中配置逻辑删除功能,包括在pom文件中引入依赖、在yml文件中设置相关配置项以及在实体类中创建映射字段等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、在pom文件里导入依赖

<dependency>
   <groupId>com.baomidou</groupId>
   <artifactId>mybatis-plus-boot-starter</artifactId>
   <version>${mybatis.plus.boot.starter}</version>
</dependency>

二、在yml文件或者在properties文件里配置逻辑删除

我这是在yml文件里配置的

#mybatis-plus配置控制台打印完整带参数SQL语句
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    db-config:
      logic-delete-field: isDelete  #全局逻辑删除字段值 3.3.0开始支持,详情看下面。
      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

三、在实体类和数据库表中创建对应的映射字段即可

最后使用删除方法,就会发现数据库里的is_delete字段变成了1,且在查询的时候查询不到该条记录!

### 配置 MyBatis-Plus 逻辑删除功能 MyBatis-Plus 提供了一种简单的方式来实现逻辑删除的功能,通过配置全局策略以及实体类中的字段属性来完成这一需求[^3]。 #### 全局配置 在 `application.yml` 或者 `application.properties` 文件中定义逻辑删除的相关参数: ```yaml mybatis-plus: global-config: db-config: logic-delete-value: 1 # 数据库中表示已删除的值 logic-not-delete-value: 0 # 数据库中表示未删除的值 ``` 上述配置指定了逻辑删除的核心规则:当某个记录被标记为“已删除”,其对应的字段会被设置为 `logic-delete-value` 值;而正常状态下的记录则会保持为 `logic-not-delete-value` 值。 #### 实体类配置 为了使逻辑删除生效,在实体类中需要指定参与逻辑删除操作的字段,并标注相应的注解。通常情况下,这个字段被称为 `deleted` 或类似的名称。 ```java import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; @TableName("your_table_name") // 替换为实际表名 public class YourEntity { @TableLogic private Integer deleted; // 对应数据库中的逻辑删除字段,默认值为 0 表示未删除,1 表示已删除 // Getter and Setter 方法省略... } ``` 这里使用了 `@TableLogic` 注解,表明该字段用于逻辑删除机制。如果数据库中的字段不是默认命名(如 `is_deleted`),可以通过额外的参数自定义字段名。 #### 自动注入 SqlParser 为了让逻辑删除自动生效,还需要确保 SQL 解析器已经正确加载并应用到拦截器链路当中。可以在项目启动类或者配置类中注册如下代码片段: ```java import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MpConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); // 添加分页插件或其他必要组件 interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); return interceptor; } } ``` 这样就完成了整个逻辑删除的基础环境搭建工作。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值