mybatisplus逻辑删除配置
时间: 2024-01-25 10:04:52 浏览: 202
mybatis-plus是一个基于MyBatis的增强工具,它提供了一些方便的功能来简化开发过程。其中之一就是逻辑删除功能。逻辑删除是指在数据库中不直接删除数据,而是通过标记数据的状态来表示数据是否被删除。下面是mybatis-plus逻辑删除的配置方法:
1. 配置全局的逻辑删除规则:
在mybatis-plus的配置文件中,可以通过设置`logic-delete-value`和`logic-not-delete-value`来定义逻辑删除的值。默认情况下,`logic-delete-value`为1,`logic-not-delete-value`为0。你可以根据需要进行修改。
2. 在实体类中添加逻辑删除注解:
在需要使用逻辑删除功能的字段上,可以使用`@TableLogic`注解来标记该字段。例如,在实体类中添加了一个名为`showStatus`的字段,并使用`@TableLogic`注解进行标记,表示该字段是逻辑删除字段。
下面是一个示例代码:
```java
@TableLogic
private Integer showStatus;
```
这样配置后,当执行删除操作时,mybatis-plus会自动将`showStatus`字段的值设置为`logic-delete-value`所定义的值,表示数据已被删除。当查询数据时,mybatis-plus会自动过滤掉`showStatus`字段值为`logic-delete-value`的数据,以达到逻辑删除的效果。
相关问题
mybatisplus逻辑删除
MybatisPlus提供了逻辑删除的功能,可以通过在实体类中添加一个标识删除的字段(如`is_deleted`)来实现。步骤如下:
1. 在实体类中添加`@TableLogic`注解,并指定逻辑删除的值和未删除的值,如:
```java
@Data
public class User {
private Long id;
private String name;
private Integer age;
@TableLogic(value = "0", delval = "1")
private Integer deleted;
}
```
上述代码中,`@TableLogic`注解中的`value`属性表示未删除的值,默认为`0`,`delval`属性表示删除的值,默认为`1`。
2. 在MybatisPlus的配置文件中开启逻辑删除,如:
```java
@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class DemoApplication {
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
// 开启逻辑删除
paginationInterceptor.setSqlParser(new LogicSqlParser());
return paginationInterceptor;
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
```
上述代码中,通过`setSqlParser`方法将`LogicSqlParser`注入到`PaginationInterceptor`中,开启逻辑删除功能。
3. 在Mapper接口中继承`BaseMapper`,如:
```java
public interface UserMapper extends BaseMapper<User> {
}
```
继承`BaseMapper`可以直接使用MybatisPlus提供的CRUD方法,包括逻辑删除的方法。
4. 使用逻辑删除的方法进行删除操作,如:
```java
@Autowired
private UserMapper userMapper;
@Test
public void testDelete() {
int rows = userMapper.deleteById(1L);
System.out.println(rows);
}
```
上述代码中,使用`deleteById`方法进行逻辑删除,将id为1的记录的`is_deleted`字段值设置为`1`。
总结:通过在实体类中添加`@TableLogic`注解,并在MybatisPlus的配置文件中开启逻辑删除的功能,即可使用MybatisPlus提供的逻辑删除方法进行删除操作。
mybatisPlus 逻辑删除方法
MyBatis-Plus提供了逻辑删除的功能,可以通过标记数据的删除状态而不是直接物理删除数据。以下是使用MyBatis-Plus进行逻辑删除的方法:
1. 在数据库表中添加一个表示删除状态的字段,例如`is_deleted`或`deleted`,通常使用整数类型(0表示未删除,1表示已删除)或布尔类型(false表示未删除,true表示已删除)。
2. 在实体类中添加该字段,并使用`@TableLogic`注解标记该字段为逻辑删除字段。例如:
```java
@TableLogic
private Integer isDeleted;
```
或者
```java
@TableLogic
private Boolean deleted;
```
3. 在MyBatis-Plus的配置文件(通常是`application.yml`或`application.properties`)中配置逻辑删除的全局属性,例如:
```yaml
mybatis-plus:
global-config:
db-config:
logic-delete-value: 1 # 逻辑删除值
logic-not-delete-value: 0 # 逻辑未删除值
logic-delete-field: is_deleted # 逻辑删除字段名
```
4. 使用MyBatis-Plus提供的方法进行逻辑删除。例如,可以使用`delete()`方法或`deleteById()`方法进行逻辑删除。被标记为逻辑删除的数据在执行删除操作后,`is_deleted`字段会被更新为逻辑删除值。
```java
// 根据条件进行逻辑删除
int rows = mapper.delete(new QueryWrapper<User>().eq("age", 18));
// 根据主键进行逻辑删除
int rows = mapper.deleteById(1);
```
这样,你就可以使用MyBatis-Plus的逻辑删除功能来处理数据的软删除需求了。
阅读全文
相关推荐
















