特地是互联网我的项目,对于数据个别是不能删除的(波及到前面的数据分析),这就波及到逻辑删除。所谓逻辑删除指的是数据并不是真正的删除,只是改数据表对应数据的状态(数据表中通常有一列叫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 HashMap<>();    returnMap.put("code", "200");    returnMap.put("msg", "删除胜利");    usersService.removeById(id);    return returnMap;}

应用PostMan测试,如图:

控制台打印,如图:

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

果然变动了,阐明逻辑删除失效。