• Mybatis-Plus逻辑删除


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

      给表增加deleted字段,用于表示数据是否被删除,可以定义:1代表删除,0代表未删除。

      同时,也修改实体,增加deleted属性并且添加@TableLogic注解:

        @TableLogic
        private int deleted;

      在application.properties中配置(基于springboot):

        # 逻辑已删除值(默认为 1)
        mybatis-plus.global-config.db-config.logic-delete-value=1
        # 逻辑未删除值(默认为 0)
        mybatis-plus.global-config.db-config.logic-not-delete-value=0

      测试删除:实际执行的是更新操作

        UPDATE
          tb_user SET deleted=1 WHERE id=? AND deleted=0

    @Test
    public void testDeleteById(){
        this.userMapper.deleteById(2L);
    }

        测试查询:会自动添加上 deleted = ?这个条件

          SELECT
            id,user_name,password,name,age,email,version,deleted FROM tb_user WHERE id=? AND deleted=0

    @Test
    public void testSelectById(){
        User user = this.userMapper.selectById(2L);
        System.out.println(user);
    }
  • 相关阅读:
    SVG
    JavaScript的性能优化
    sublime长期使用的快捷键
    spring实现AOP
    java之spring
    JAVA面试题02
    java面试题01
    MyBatis之关联关系
    MyBatis之动态sql
    MyBatis之sql映射文件
  • 原文地址:https://www.cnblogs.com/roadlandscape/p/12403820.html
Copyright © 2020-2023  润新知