利用MyBatis-Plus如何实现逻辑删除

  介绍

利用MyBatis-Plus如何实现逻辑删除?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

特别是互联网项目,对于数据一般是不能删除的(涉及到后面的数据分析),这就涉及到逻辑删除。所谓逻辑删除指的是数据并不是真正的删除,只是改数据表对应数据的状态(数据表中通常有一列叫delFlag,以此标识正常状态或删除状态)。逻辑删除一般都是更新操作,但写大量更新方法无疑是增加代码量,MyBatis-Plus又是如何实现逻辑删除的呢?其实很简单一共两步。

MyBatis-Plus:   配置:   db-config:   logic-delete-value: 1 #逻辑已删除值(默认为1)   logic-not-delete-value: 0 #逻辑未删除值(默认为0)

使用@TableLogic注解

包com.blog.tutorial.entity;
  进口com.baomidou.mybatisplus.annotation。*;
  进口com.baomidou.mybatisplus.extension.activerecord.Model;
  进口lombok.Data;
  进口java.util.Date;/* *
  * & lt; p>
  * * & lt;/p>
  * * @author youcong
  * @since 2020-04-18
  */@ data
  @TableName (“wp_users")
  公开课用户扩展Model{
  私有静态最终长serialVersionUID l=1;
  @TableId (value=https://www.yisu.com/zixun/" ID ",输入=IdType.AUTO)
  私人长id;
  @TableField(“用户_”)
  私人字符串userLogin;
  @TableField (“user_pass”)
  私人字符串userPass;
  @TableField (“user_nicename”)
  私人字符串userNicename;
  @TableField (“user_email”)
  私人字符串userEmail;
  @TableField (“user_url”)
  私人字符串userUrl;
  @TableField (“user_registered”)
  私人userRegistered日期;
  @TableField (“user_activation_key”)
  私人字符串userActivationKey;
  @TableLogic
  @TableField (“user_status”)
  私人整数userStatus;
  @TableField (“display_name”)
  私人字符串displayName;
  }

完成上面两步,在第三步我们可以进行测试。

删除用户表的这个用户,如图:

利用MyBatis-Plus如何实现逻辑删除

数据是否删除在于user_status是否改变,如果变成1,说明逻辑删除生效。

如果user_status还是为0或者这条数据不在了(物理删除了),说明逻辑删除失效。

测试控制器代码:

@PostMapping (“/del")   公共地图德尔(整数id) {   Object> Map<字符串;,returnMap=new HashMap<的在();   returnMap.put (“code",“200“);   returnMap.put (“msg",“删除成功“);   usersService.removeById (id);   返回returnMap;   }

使用邮差测试,如图:

利用MyBatis-Plus如何实现逻辑删除

控制台打印,如图:

利用MyBatis-Plus如何实现逻辑删除

刷新数据表,查看该用户数据是否变动,如图:

利用MyBatis-Plus如何实现逻辑删除

果然变动了,说明逻辑删除生效。

看完上述内容,你们掌握利用MyBatis-Plus如何实现逻辑删除的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

利用MyBatis-Plus如何实现逻辑删除