目录
  • 什么是逻辑删除?
  • 为什么用到逻辑删除?
  • 在springboot使用Mybatis-Plus提供的逻辑删除
    • 1、在application.yml配置
    • 2、 实体类字段上加上@TableLogic注解

什么是逻辑删除?

update user set deleted=1 where id = 1 and deleted=0

select id,name,deleted from user where deleted=0

为什么用到逻辑删除?

比如:在一家销售公司中,有两个员工在一月份离职了,后台管理人员在办离职时,如果直接将数据库中与这两个员工相关的信息删除了,那么当经理想要看一月份的销售记录的时候,只能看到部分销售记录,销售金额对不上。这种情况肯定是不允许发生的

如下图:

本来一月总共销售了17,000,00元,结果删除后只剩下了5,000,00。

只需要在员工工号后面加delete_flag字段,用于标记是否被删除即可。

在springboot使用Mybatis-Plus提供的逻辑删除

字段类型支持说明:

1、在application.yml配置

mybatis-plus: global-config: db-config: logic-delete-field: flag # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2) logic-delete-value: 1 # 逻辑已删除值(默认为 1) logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

2、 实体类字段上加上@TableLogic注解

@Data public class UserPO implements Serializable { @TableId(type = IdType.ASSIGN_ID) private Long id; private String userName; private String password; private String nickName; @TableLogic private int delFlag; }

演示

数据库t_user表中数据:

UserPOMapper:

@Mapper public interface UserPOMapper extends BaseMapper<UserPO> { }

IUserService:

public interface IUserService extends IService<UserPO> { }

IUserServiceImpl:

@Service public class IUserServiceImpl extends ServiceImpl<UserPOMapper, UserPO> implements IUserService { }

Controller:

 @RequestMapping("/open/del") public ResultUtil del(UserParam userParam){ UserPO one = iUserService.getOne(new LambdaQueryWrapper<UserPO>() .eq(UserPO::getUserName, userParam.getUserName())); boolean b = iUserService.removeById(one); System.out.println(b); return ResultUtil.success(b); }

ResultUtil:

@Data public class ResultUtil { private String code; private String message; private Object data; public static ResultUtil success(Object data){ ResultUtil resultUtil = new ResultUtil(); resultUtil.setCode("200"); resultUtil.setMessage("请求成功"); resultUtil.setData(data); return resultUtil; } }

浏览器请求:

到此这篇关于mybatis-plus实现逻辑删除的示例代码的文章就介绍到这了,更多相关mybatis-plus 逻辑删除内容请搜索本网站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本网站!

您可能感兴趣的文章:

  • MyBatis-Plus实现逻辑删除功能解析
  • Mybatis-Plus同时使用逻辑删除和唯一索引的问题及解决办法(报数据重复Duplicate entry的问题)
  • Mybatis-Plus逻辑删除的用法详解
  • MyBatis-Plus解决逻辑删除与唯一索引的问题
  • MyBatis-Plus实现逻辑删除的示例代码
  • MyBatis-Plus的物理删除和逻辑删除(使用场景)
  • 关于mybatis-plus逻辑删除无效的问题
  • MyBatis-Plus之逻辑删除的实现
  • mybatis-plus3.4.0逻辑删除报错的解决
  • mybatis-plus逻辑删除与唯一约束冲突问题