说到逻辑删除,还得提到物理删除…
连基本概念都不知道,可打脸啦…
-
物理删除:直接将数据库里的数据删掉,要找回来比较麻烦。
-
逻辑删除:只是将某个字段修改作为一个标志,不是真的把数据删掉,数据不易丢失。
话不多说,看看mybatis-plus的逻辑删除怎么使用吧。
-
前面一些环境配置就不说了,我用的是springboot+mybatis-plus
-
在yml文件配置,使用nacos的应该在后台配置
mybatis-plus: global-config: db-config: logic-delete-value: 2 # 逻辑已删除值(默认为 1) logic-not-delete-value: 1 # 逻辑未删除值(默认为 0)
如果与MP(mybatis-plus)默认配置一样,可以省略,不过字段上的注解@TableLogic不能省略。
也可以直接在注解上使用:
/** * 状态:1.可用2.不可用 */ @ApiModelProperty(value="状态:1.可用 2.不可用") @TableLogic(value = "1", delval = "2") private Integer status;
-
接下来是控制层,跟普通的没有区别
@DeleteMapping("/delete" ) public R removeById(@RequestParam(value = "id", required = true) String id){ return R.ok(tItemService.delete(id)); }
-
服务层调用MP封装好的方法,这里也有个要注意的地方,先更新,再删除
如果先删除后面更新不了,应该是查不出来的原因。
@Override public Integer delete(String id){ TItem tItem = new TItem(); tItem.setId(id); dataUtil.updateData(tItem); tItemMapper.updateById(tItem); return tItemMapper.deleteById(id); }
可恶,这么简单居然耗费这么长的时间才解决,你是🐖吗?