java逻辑删除代码_MyBatis-Plus之逻辑删除

spring+spring mvc mybatis整合

113.5元

包邮

(需用券)

去购买 >

7c3c2fdaa721f1f38e1e8503f447af8f.png

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

/**

*

* *

* * @author youcong

* @since 2020-04-18

*/@Data

@TableName("wp_users")

public class Users extends Model {

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 returnMap = new HashMap<>();

returnMap.put("code", "200");

returnMap.put("msg", "删除成功");

usersService.removeById(id);

return returnMap;

}

使用PostMan测试,如图:

控制台打印,如图:

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

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

java 11官方入门(第8版)教材

79.84元

包邮

(需用券)

去购买 >

f0f3f55624fb396b1764d42d6df88864.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值