mybatisplus逻辑删除
时间: 2023-06-18 08:04:43 浏览: 103
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提供的逻辑删除方法进行删除操作。
阅读全文