• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MyBatis-Plus之逻辑删除的实现

mybatis 搞代码 4年前 (2022-01-09) 31次浏览 已收录 0个评论

特别是互联网项目,对于数据一般是不能删除的(涉及到后面的数据分析),这就涉及到逻辑删除。所谓逻辑删除指的是数据并不是真正的删除,只是改数据表对应数据的状态(数据表中通常有一列叫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;
}

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

三、测试

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

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

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

测试Controller代码:

@PostMapping("/del")
public Map del(Integer id) {
  Map<String, Object> returnMap = new HashM<i style="color:transparent">本文来源gaodai$ma#com搞$$代**码网$</i>ap<>();
  returnMap.put("code", "200");
  returnMap.put("msg", "删除成功");
  usersService.removeById(id);
  return returnMap;
}

使用PostMan测试,如图:

控制台打印,如图:

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

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

到此这篇关于MyBatis-Plus之逻辑删除的实现的文章就介绍到这了,更多相关MyBatis-Plus 逻辑删除内容请搜索搞代码以前的文章或继续浏览下面的相关文章希望大家以后多多支持搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MyBatis-Plus之逻辑删除的实现

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址