介绍
利用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; }
完成上面两步,在第三步我们可以进行测试。
删除用户表的这个用户,如图:
数据是否删除在于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如何实现逻辑删除的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!