mybatisplus逻辑删除配置
时间: 2024-01-25 20:04:52 浏览: 39
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配置逻辑删除
在 MyBatis Plus 中配置逻辑删除可以通过以下步骤完成:
1. 在实体类中添加一个用于标识逻辑删除的字段,通常会使用 `@TableLogic` 注解来标记该字段。这个字段的类型可以是 Integer、Boolean 或者 Enum 类型,根据业务需求进行选择。
2. 在 MyBatis Plus 的配置文件(通常是 `mybatis-plus-config.xml`)中,配置逻辑删除的全局属性。你可以使用 `global-config` 标签来配置,如下所示:
```xml
<global-config>
<db-config>
<logic-delete-value>1</logic-delete-value> <!-- 逻辑删除对应的值 -->
<logic-not-delete-value>0</logic-not-delete-value> <!-- 未删除对应的值 -->
</db-config>
</global-config>
```
其中,`logic-delete-value` 是逻辑删除的值,`logic-not-delete-value` 是未删除的值。一般情况下,逻辑删除字段的值会被更新为 `logic-delete-value` 表示被删除,而更新为 `logic-not-delete-value` 表示未被删除。
3. 在数据库表对应的 Mapper 接口中,使用 `@TableField` 注解标注需要进行逻辑删除操作的字段。同时,使用 `@TableLogic` 注解标记该字段为逻辑删除字段。
完成上述配置后,MyBatis Plus 将会自动处理逻辑删除的操作。当执行删除操作时,MyBatis Plus 会将对应的逻辑删除字段更新为 `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提供的逻辑删除方法进行删除操作。