mybatisPlus逻辑删除

时间:2025-04-01 13:01:00

SpringBoot 配置方式:
加入配置(如果你的默认值和mp默认的一样,该配置可无):
yml文件(注意:区别是多了一个路径db-config

mybatis-plus:
  global-config:
    db-config:
      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
  • 1
  • 2
  • 3
  • 4
  • 5

对于逻辑删除拦截器的bean的注入方式:

import com.baomidou.mybatisplus.core.injector.ISqlInjector;
import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MyBatisPlusConfiguration {
    @Bean
    public ISqlInjector sqlInjector() {
        return new LogicSqlInjector();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

实体类字段上加上@TableLogic注解

@TableLogic
private Integer deleted;
  • 1
  • 2

效果: 使用mp自带方法删除和查找都会附带逻辑删除功能 (自己写的xml不会)

example
删除时 update user set deleted=1 where id =1 and deleted=0
查找时 select * from user where deleted=0
  • 1
  • 2
  • 3