MyBatisPlus–逻辑删除「建议收藏」

MyBatisPlus–逻辑删除「建议收藏」逻辑删除开发系统时,有时候在实现功能时,删除操作需要实现逻辑删除,所谓欧吉删除就是将数据标记为删除,而并非真正的物理删除(非DELETE操作),查询时需要携带状态条件,确保被标记的数据不被查询,这样做的目的就是避免数据被真正的删除。配置application.properties#删除状态值为1mybatis-plus.global-config.db-config.logic-del…

大家好,又见面了,我是你们的朋友全栈君。

逻辑删除

开发系统时,有时候在实现功能时,删除操作需要实现逻辑删除,所谓欧吉删除就是将数据标记为删除,而并非真正的物理删除(非DELETE操作),查询时需要携带状态条件,确保被标记的数据不被查询,这样做的目的就是避免数据被真正的删除。

配置

application.properties

# 删除状态值为1
mybatis-plus.global-config.db-config.logic-delete-value=1
# 未删除状态为0
mybatis-plus.global-config.db-config.logic-not-delete-value=0

表结构

在这里插入图片描述

实体类

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("tb_user")
public class User extends Model<User> { 
   

    //指定主键为自增
    @TableId(type = IdType.AUTO)
    private Long id;

    //指定数据表中字段名
    @TableField(value = "user_name")
    private String userName;

    @TableField(fill = FieldFill.INSERT)
    private String password;
    private String name;
    private Integer age;
    private String email;

    //逻辑删除字段: 0,未删除; 1,已删除
    @TableLogic //标记为逻辑删除字段
    private Integer deleted;


    //指定该字段在表中是不存在的
    @TableField(exist = false)
    private String address;
}

测试

	@Test
    public void testDeleteById(){ 
   
        int rows = userMapper.deleteById(2l);
        System.out.println(rows);
    }

在这里插入图片描述

再次查询所有:

	@Test
    public void testSelectList(){ 
   
        List<User> users = userMapper.selectList(null);
        for (User u : users)
            System.out.println(u);
    }

控制台打印:

 Time:6 ms - ID:psers.zhang.demo.mapper.UserMapper.selectList
Execute SQL:
    SELECT
        id,
        user_name,
        password,
        name,
        age,
        email,
        deleted 
    FROM
        tb_user 
    WHERE
        deleted=0

User(id=4, userName=zhaoliu, password=123456, name=赵六, age=48, email=test4@qq.com, deleted=0, address=null)
User(id=5, userName=小强, password=88888, name=xiaoqiang, age=30, email=123456@qq.com, deleted=0, address=null)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/137218.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 正则表达式替换某个字符「建议收藏」

    正则表达式替换某个字符「建议收藏」需要匹配指定位置的某个字符示例:替换时间戳中的最后一个冒号为.号//原始字符串letstr="18:78:45:222"//匹配letreg=/^(.{5,8}):(.*)$/g//替换letresult=str.replace(reg,"$1*$2")希望有更好的方法,看官们留个言呗…

  • ubuntu16.04分区方案设置(新装的ubuntu没有网络驱动)

    linux分区设置。法一:Swap(相当于电脑内存):逻辑分区、大小设置为电脑内存大小,2G,4G;/boot(引导分区):主分区:大小设置为200M;/home(用户存储数据用):逻辑分区,要尽可能大,100G空间可以设置为85G,留10G给主分区即可。/.(主分区):主分区,用于存放系统,相当于win7的C盘,10G即可。法二:/.(主分区):主分区,只分这一个区,…

  • Tomcat 下载安装与配置

    Tomcat 下载安装与配置一、下载tomcat下载链接:https://tomcat.apache.org/1、进入tomcat官网后,选择需要下载的版本。我使用的是tomcat9,所以在这我选择tomcat92、选择z

  • 做淘宝的经验_阿里社招offer审批通过率

    做淘宝的经验_阿里社招offer审批通过率如何轻松拿到 淘宝前端 offer

  • 常量指针,指针常量的区别是什么_指针常量与常量指针

    常量指针,指针常量的区别是什么_指针常量与常量指针**要有具备扎实指针知识……了解引用、指针的一些注意事项:引用并非对象引用必须初始化引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起类型要严格匹配一、常量指针定义:又叫常指针,可以理解为常量的指针,也即这个是指针,但指向的是个常量,这个常量是指针的值(地址),而不是地址指向的值。关键点:常量指针指向的对象不能通过这个指针来修改,可是仍然可以通过原来的声明修改;常量指针可以被赋值为变量的地址,之所以叫常量指针,是限制了通过这个指针修改变量的值;指针还可以指向别

  • jave中的Random中rand.nextInt(int n )的取值范围

    jave中的Random中rand.nextInt(int n )的取值范围1.要求在10到300中产生随机数[10,300]包含10和300.intrandNum=rand.nextInt(300-10+1)+10;rand.nextInt(300-10+1)=rand.nextInt(291)意思是产生[0,291)不包括291再加10就是[10,301)不包括301,如果要包括300所以要rand.nextInt(300-10+1)里面要加1.

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号