温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-11-16 14:32:14 来源:亿速云 阅读:218 作者:Leah 栏目:开发技术

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

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

一、配置文件配置

mybatis-plus: global-config: db-config: logic-delete-value: 1 # 逻辑已删除值(默认为 1) logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

二、数据模型实体添加注解

使用 @TableLogic注解

package com.blog.tutorial.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; import java.util.Date; /** * <p> * * </p> * * @author youcong * @since 2020-04-18 */@Data @TableName("wp_users") public class Users extends Model<Users> { private static final long serialVersionUID = 1L; @TableId(value = "ID", type = IdType.AUTO) private Long id; @TableField("user_login") private String userLogin; @TableField("user_pass") private String userPass; @TableField("user_nicename") private String userNicename; @TableField("user_email") private String userEmail; @TableField("user_url") private String userUrl; @TableField("user_registered") private Date userRegistered; @TableField("user_activation_key") private String userActivationKey; @TableLogic @TableField("user_status") private Integer userStatus; @TableField("display_name") private String displayName; }

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

三、测试

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

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

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

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

测试Controller代码:

@PostMapping("/del") public Map del(Integer id) { Map<String, Object> returnMap = new HashMap<>(); returnMap.put("code", "200"); returnMap.put("msg", "删除成功"); usersService.removeById(id); return returnMap; }

使用PostMan测试,如图:

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

控制台打印,如图:

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

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

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

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

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI