Mybatis Plus 逻辑删除

逻辑删除的意思就是只是在逻辑上删除了,在数据库里它还是存在的只是被打上了删除标记。

步骤1: 引入Mybatis Plus 3.3.0 的依赖

       <!--MYBATISPLUS啟動器-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-extension</artifactId>
        </dependency>

 步骤2:逻辑删除配置

# mybatis
mybatis-plus:
    type-aliases-package: com.hieasy.erp.domain
    mapper-locations: classpath:mappers/**/*.xml
    global-config:
        #0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
        id-type: 0
        #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
        field-strategy: 0
        #驼峰下划线转换
        db-column-underline: true
        #刷新mapper 调试神器
        refresh-mapper: true
        #数据库大写下划线转换
        #capital-mode: true
        #逻辑删除配置
        db-config:
            logic-delete-field: delFlag
            logic-delete-value: 1
            logic-not-delete-value: 0

步骤3:实体类


@Data
@TableName("erp_yuangong")
public class Yuangong {

    @TableId(type = IdType.AUTO)
    private Long ygId;      //ID
    private Long tenantId;    //租户ID
    @ApiModelProperty(required = true)
    private String ygdm;  //代码
    @ApiModelProperty(required = true)
    private String ygmc;  //名称
    private String ygpym;   //拼音码
    private String birthday;    //生日
    private String telephone;   //电话
    private String address;     //地址
    private String remark;  //备注

    @TableLogic
    private Integer delFlag;


}

 步骤4:删除操作

    @Override
    public int deleteByIds(String ids) {
        return ygMapper.deleteBatchIds(MyStrUtil.strToLongArr(ids));
    }

逻辑删除配置后,实际执行的是更新操作

 UPDATE  erp_yuangong SET del_flag=1 WHERE yg_id=? AND del_flag=0

查询的时候会自动添加上 del_flag = ?这个条件

   SELECT  * FROM erp_yuangong WHERE yg_id=? AND del_flag=0

验证下结果:

将 del_flag 改成0之后再查询的结果

   

猜你喜欢

转载自blog.csdn.net/chengmin123456789/article/details/107928392