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语句。

相关推荐
依旧很淡定12 小时前
14-SpringBoot3入门-MyBatis-Plus之CRUD
mybatis-plus·crud
我要学编程(ಥ_ಥ)18 小时前
初始JavaEE篇 —— Mybatis-plus 操作数据库
java·java-ee·mybatis·mybatis-plus
救救孩子把10 天前
MyBatis-Flex、MyBatis-Plus 与 Fluent-Mybatis 的比较分析
java·mybatis·mybatis-plus·mybatis-flex·fluent-mybatis
码熔burning12 天前
MyBatis-Plus 自动填充:优雅实现创建/更新时间自动更新!
java·mybatis·springboot·mybatis-plus
奔跑吧邓邓子21 天前
【商城实战(25)】解锁UniApp移动端适配秘籍,打造完美商城体验
uni-app·springboot·mybatis-plus·移动端适配·商城实战
自在如风。24 天前
MyBatis-Plus 使用技巧
java·mybatis·mybatis-plus
drebander1 个月前
MyBatis-Plus 逻辑删除实现
tomcat·mybatis·mybatis-plus
GGBondlctrl1 个月前
【Mybatis】如何简单使用mybatis-plus,以及MybatisGenerator自动生成或者实现SQL语句
java·sql·mybatis·mybatis-plus·数据库generator·自动生成sql
drebander1 个月前
MyBatis-Plus 对比传统 MyBatis 的优势
mybatis-plus
ONEPEICE-ing1 个月前
快速入门Springboot+vue——MybatisPlus快速上手
vue.js·spring boot·后端·mybatis·mybatis-plus