MyBatisPlus逻辑删除

  • MyBatisPlus逻辑删除


MyBatisPlus逻辑删除


  • 物理删除:真实删除。将对一个数据从数据库中删除,之后查询不到删除的书。
  • 逻辑删除:假删除。将对应数据中爱表是否被删除字段状态修改为“被删除状态”,只有数据库中仍能看见此条数据。

(1)添加配置

properties

# 逻辑删除配置
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0

yml

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

(2)添加字段

加上​​@TableLogic​​注解

@TableLogic
private Integer deleted;

(3)添加插件

/**
* 在这个配置类中注入LogicSqlInjector bean对象的原因是:
* 若mp的版本是3.3.1以下的就需要在此处注入这个bean对象
* 若mp的版本高于3.3.1的就无需在此处注入bean对象了
* 我使用的mp的版本是3.1.2,不需在此处注入这个bean对象
* @return
*/
@Bean
private ISqlInjector sqlInjector () {
return new LogicSqlInjector();
}

(4)测试

// 逻辑删除查询
@Test
public void logicalDeletion() {
int number = userMapper.deleteById(29);
System.out.println("影响条数:"+number);
}