mybatis的逻辑删除
时间: 2023-11-18 18:03:57 浏览: 210
MyBatis中可以通过使用UPDATE语句将删除标志位置为已删除来实现逻辑删除。在MyBatisPlus中,逻辑删除功能也非常简单易用。开启逻辑删除功能后,MyBatisPlus会在删除、查询和更新操作时自动加上条件deleted=0,只对未删除的数据进行操作。建议在建表时对deleted字段做默认限制,默认值为0(未删除),插入数据时可以不用设置该字段的值。需要注意的是,对于自己在xml文件中定义的接口方法,MyBatisPlus不会自动开启逻辑删除功能,需要自己维护逻辑删除功能。
相关问题
mybatis plus 逻辑删除
MyBatis Plus提供了逻辑删除的功能,可以在删除、查询和更新操作中自动加上条件来过滤已删除的数据。在使用MyBatis Plus进行逻辑删除时,需要在配置文件中设置相关参数。在yml配置文件中,需要设置全局逻辑删除的实体字段名、逻辑已删除值和逻辑未删除值。开启逻辑删除功能后,MP会自动在删除、查询和更新操作中加上条件deleted=0,只对未删除的数据进行操作。同时,建议在建表时对deleted字段设置默认限制,默认为0(未删除),插入数据时这个值可以不用设置。自己在xml文件中定义的接口方法不会自动开启逻辑删除功能,需要自己维护逻辑删除功能。对于查找操作,可以通过追加where条件来过滤掉已删除数据,使用wrapper.entity生成的where条件会忽略该字段。所以,MyBatis Plus的逻辑删除功能使用起来非常简单,并且提高了数据的记录价值。
mybatis-flex逻辑删除
MyBatis-Flex 是一个 MyBatis 的插件,它提供了逻辑删除的功能来标记数据库中的数据为已删除状态而不是真正地删除数据。
要使用 MyBatis-Flex 实现逻辑删除,你需要按照以下步骤进行操作:
1. 引入 MyBatis-Flex 插件:在你的项目中引入 MyBatis-Flex 插件的依赖。
2. 配置 MyBatis-Flex:在 MyBatis 的配置文件中,添加 MyBatis-Flex 的插件配置,并配置逻辑删除的相关信息。例如:
```xml
plugins>
<plugin interceptor="org.mybatis.plugin.FlexInterceptor">
<property name="deletedFlagColumn" value="deleted"/>
<property name="deletedFlagValue" value="1"/>
<property name="notDeletedFlagValue" value="0"/>
</plugin>
</plugins>
```
上述配置中,`deletedFlagColumn` 是表示逻辑删除标记列的名称,`deletedFlagValue` 是表示已删除的标志值,`notDeletedFlagValue` 是表示未删除的标志值。
3. 添加逻辑删除标记列:在数据库表中添加一个列来表示逻辑删除的状态。例如,你可以添加一个名为 `deleted` 的列。
4. 在实体类中添加逻辑删除字段:在对应的实体类中,添加一个与逻辑删除标记列对应的属性,并在对应的数据库字段上使用注解指定映射关系。例如:
```java
public class User {
private Long id;
private String name;
private Integer deleted;
// getters and setters
}
```
在上述示例中,`deleted` 属性对应于数据库表中的 `deleted` 列。
5. 更新相关的 MyBatis 映射文件:在对应的 MyBatis 映射文件中,修改查询条件,将原来的直接查询改为查询未删除的数据。例如:
```xml
<select id="getUserById" resultType="User">
SELECT * FROM user WHERE id = #{id} AND deleted = 0
</select>
```
在上述示例中,`deleted = 0` 表示查询未删除的数据。
通过以上步骤,你就可以使用 MyBatis-Flex 实现逻辑删除。当你执行删除操作时,MyBatis-Flex 会自动将数据库中的数据标记为已删除状态,并在查询时过滤已删除的数据。
阅读全文
相关推荐
















