MyBatis-Plus之逻辑删除的实现
时间:2021-09-09 09:53:04|栏目:JAVA代码|点击: 次
特别是互联网项目,对于数据一般是不能删除的(涉及到后面的数据分析),这就涉及到逻辑删除。所谓逻辑删除指的是数据并不是真正的删除,只是改数据表对应数据的状态(数据表中通常有一列叫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测试,如图:

控制台打印,如图:

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

果然变动了,说明逻辑删除生效。
上一篇:MybatisPlus 不修改全局策略和字段注解如何将字段更新为null
栏 目:JAVA代码
本文标题:MyBatis-Plus之逻辑删除的实现
本文地址:http://www.codeinn.net/misctech/173823.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




