MybatisPlus入门(十)MybatisPlus-逻辑删除和多记录操作

一、Mybatis-Plus 多记录操作

按照主键删除多条记录

List<Long> ids= Arrays.asList(new Long[]{2,3})

userDao.deleteBatchIds(ids);

示例代码如下:

java 复制代码
    @Test
    void testDelete(){
        //删除指定多条数据
        List<Long> list = new ArrayList<>();
        list.add(1402551342481838081L);
        list.add(1402553134049501186L);
        list.add(1402553619611430913L);
        userDao.deleteBatchIds(list);
    }

根据主键查询多条记录

List<Long> ids= Arrays.asList(new Long[]{2,3});

List<User> userList = userDao.selectBatchIds(ids);

示例代码如下:

java 复制代码
    @Test
    void testDelete(){

        //查询指定多条数据
        List<Long> list = new ArrayList<>();
        list.add(1L);
        list.add(3L);
        list.add(4L);
        userDao.selectBatchIds(list);
    }

二、Mybatis-Plus 逻辑删除

如下图,描述的是房屋中介公司销售业绩数据,右边表是人员信息,左边表是开单信息,

员工1张业绩离职了,数据不需要留了,执行了delete操作,执行完,左边表的关联数据成为垃圾数据,年底如果统计报表,如下图,已经删除了,或者是脏数据,无法读取。问题出现了,统计数据不对,日常删除操作对业务会有伤害性,会将数据从数据库中删除。

如何解决? 我们不应该删除数据,在数据后面加个字段,如果是1就代表删除了。

删除操作业务问题:业务数据从数据库中丢弃。

逻辑删除:为数据设置是否可用状态字段,删除时设置状态字段为不可用状态,数据保留在数据库中。

逻辑删除操作步骤:

步骤一、数据库表中添加逻辑删除标记字段

数据库添加字段名 deleted 类型 int 长度 1

步骤二、实体类中添加对应字段,并设定当前字段为逻辑删除标记字段

步骤三、配置逻辑删除字面值

java 复制代码
@Data

public class User {

    private Long id;

    //逻辑删除字段,标记当前记录是否被删除
    @TableLogic(value = "0" ,delval = "1")
    private Integer deleted;
}

配置逻辑删除字面值全局配置:

XML 复制代码
mybatis-plus:
  global-config:
   db-config:
    logic-delete-field: deleted
      logic-not-delete-value: 0 
      logic-delete-value: 1

逻辑删除开启后,执行的删除语句变成了更新语句,操作完以后会用deleted字段值标记数据是否被删除,并且标记被删除的数据,是不参与到Mabatis-Plus的API查询的过程中的,如果想查这些数据通过自己编写SQL语句。

相关推荐
每天都要进步113 天前
Mybatis 进阶 / Mybatis—Puls (详细)
mybatis·mybatis-plus
Y编程小白16 天前
MyBatis-Plus6--MyBatis中的分页插件
java·开发语言·mybatis·mybatis-plus
lihan_freak16 天前
MyBatisPlus--分页插件
java·spring boot·mybatis-plus
Ming__GoGo1 个月前
MyBatis-plus sql拦截器
java·sql·学习·鉴权·mybatis-plus·过滤·sql拦截
程序猿零零漆1 个月前
SpringCloud系列教程:微服务的未来 (五)枚举处理器、JSON处理器、分页插件实现
java·spring boot·mybatis-plus
程序猿零零漆1 个月前
SpringCloud 系列教程:微服务的未来(三)IService接口的业务实现
java·spring cloud·mybatis-plus
java_学习爱好者1 个月前
mybatis-plus 用法总结
java·spring boot·mybatis·mybatis-plus
程序猿零零漆1 个月前
SpringCloud 系列教程:微服务的未来(二)Mybatis-Plus的条件构造器、自定义SQL、Service接口基本用法
java·spring cloud·mybatis-plus
我自飞扬临天下1 个月前
Mybatis-Plus快速入门
数据库·mybatis-plus
墨鸦_Cormorant2 个月前
MyBatis-Plus介绍及基本使用
mybatis·mybatisplus·mybatis-plus