在MyBatis-Plus中,逻辑删除通过拦截器(Interceptor)机制实现。当执行删除操作时,MyBatis-Plus不会直接删除数据,而是更新数据行中的某个字段(通常是deleted字段)为某个特定值(如1表示已删除),以此来标记数据行已被逻辑删除。 3. MyBatis-Plus中逻辑删除与物理删除的区别 物理删除:直接从数据库中移除数据行,数据无法...
mbatis-plus的逻辑删除功能,可以通过注解个性化的配置某一张表或几张表开启逻辑删除功能(方式1),也可以通过配置文件,全局配置逻辑删除功能(方式2);根据情况,选择一种方式即可; 注解方式 在标识逻辑删除的字段上添加注解@TableLogic(value = "1",delval = "0")即可; 全局配置方式 mybatis-plus: global-config: d...
mybatis-plus:global-config:db-config:# 逻辑删除字段名logic-delete-field:deleted# 逻辑删除字面值:未删除为0logic-not-delete-value:0# 逻辑删除字面值:删除为1logic-delete-value:1 介绍完逻辑删除,逻辑删除的本质为: 逻辑删除的本质其实是修改操作。如果加了逻辑删除字段,查询数据时也会自动带上逻辑删除字段。
步骤二、实体类中添加对应字段,并设定当前字段为逻辑删除标记字段 步骤三、配置逻辑删除字面值 @DatapublicclassUser {privateLong id;//逻辑删除字段,标记当前记录是否被删除@TableLogic(value = "0" ,delval = "1")privateInteger deleted; } 配置逻辑删除字面值全局配置: mybatis-plus: global-config: db-confi...
接下来,我们将演示如何在MyBatis-Plus中使用逻辑删除功能。 方式一:局部配置 局部配置适用于只需要在某个Mapper接口中应用逻辑删除功能的情况。 首先,在Mapper接口中添加@Repository注解并继承BaseMapper接口,例如: 代码语言:javascript 复制 importorg.springframework.stereotype.Repository;@RepositorypublicinterfaceBlogMapper...
deleted采用默认值0(未删除),新插入的数据都是未删除的数据 3.2.删除一条记录:执行如下Mybatis Plus API删除操作 userMapper.deleteById(1286797255805796354L);查看数据库可以发现这条数据仍然存在,只不过逻辑删除字段值被设置为1:UPDATE user SET deleted=1 WHERE id=? AND deleted=0 3.3.查询一条记录 当...
我们可以看到查询的时候。SQL语句拼接上一个 status =1的条件。只有 status = 1 的记录才能被查出来,status =0 的表示删除了,不可以查询出来。 我们还可以通过全局配置来实现逻辑删除的效果。 需要在application.yaml文件当中配置。 mybatis-plus:global-config:db-config:logic-delete-value:1logic-delete-field:st...
在标识逻辑删除的字段上添加注解@TableLogic(value = "1", delval = "0")即可。全局配置方式 对于有deleted字段的表,使用mabatis-plus提供的动态生成方法如deleteById等,实现的是逻辑删除而非物理删除。其中logic-delete-value和logic-not-delete-value可以不配置,默认分别为1和0。原理浅析逻辑删除sql...
二、使用MyBatis-Plus实现逻辑删除 逻辑删除的适用场景 逻辑删除适用于可以进行数据恢复或有关联数据,不便删除的场景。所谓的逻辑删除,实际上就是假删除,将对应数据中代表是否被删除字段状态修改为"被删除状态",之后在数据库中仍能看到这条数据记录。 步骤1:数据库修改 ...