mybatis逻辑删除
时间: 2023-11-12 09:06:16 浏览: 78
MyBatis 逻辑删除可以通过在 SQL 语句中使用条件语句实现,例如使用 IF 判断语句或者 CASE WHEN 语句。在逻辑删除的场景中,通常会在数据库表中添加一个标识字段(例如 is_deleted),用于标识该记录是否已被删除。在 MyBatis 中,可以使用动态 SQL 的方式来构建带有条件判断的 SQL 语句,例如:
```xml
<update id="logicDeleteById" parameterType="long">
UPDATE user SET is_deleted = 1 WHERE id = #{id}
</update>
<select id="getUserById" parameterType="long" resultType="User">
SELECT * FROM user WHERE id = #{id} AND is_deleted = 0
</select>
```
在上面的例子中,`logicDeleteById` 方法用于将指定 ID 的用户记录标记为已删除,`getUserById` 方法用于查询指定 ID 的用户记录,但只查询未被标记为已删除的记录。
需要注意的是,逻辑删除并不能完全替代物理删除,在某些场景下仍然需要执行物理删除操作。
相关问题
mybatis plus 逻辑删除
MyBatis Plus提供了逻辑删除的功能,可以在删除、查询和更新操作中自动加上条件来过滤已删除的数据。在使用MyBatis Plus进行逻辑删除时,需要在配置文件中设置相关参数。在yml配置文件中,需要设置全局逻辑删除的实体字段名、逻辑已删除值和逻辑未删除值。开启逻辑删除功能后,MP会自动在删除、查询和更新操作中加上条件deleted=0,只对未删除的数据进行操作。同时,建议在建表时对deleted字段设置默认限制,默认为0(未删除),插入数据时这个值可以不用设置。自己在xml文件中定义的接口方法不会自动开启逻辑删除功能,需要自己维护逻辑删除功能。对于查找操作,可以通过追加where条件来过滤掉已删除数据,使用wrapper.entity生成的where条件会忽略该字段。所以,MyBatis Plus的逻辑删除功能使用起来非常简单,并且提高了数据的记录价值。
mybatis的逻辑删除
MyBatis中可以通过使用UPDATE语句将删除标志位置为已删除来实现逻辑删除。在MyBatisPlus中,逻辑删除功能也非常简单易用。开启逻辑删除功能后,MyBatisPlus会在删除、查询和更新操作时自动加上条件deleted=0,只对未删除的数据进行操作。建议在建表时对deleted字段做默认限制,默认值为0(未删除),插入数据时可以不用设置该字段的值。需要注意的是,对于自己在xml文件中定义的接口方法,MyBatisPlus不会自动开启逻辑删除功能,需要自己维护逻辑删除功能。
阅读全文