mybatisplus----CRUD操作之删除操作(逻辑删除)

删除操作:

基本的删除操作;

 

    @Test//根据id删除单个
    void testDeletebyId(){
        userMapper.deleteById("1327089990215172099");
    }
    @Test//根据多个id删除多个数据
    void testDeletebyArry(){
        userMapper.deleteBatchIds(Arrays.asList(1327089990215172098L,1327089990215172097L));
    }
    @Test//根据map条件删除
    void testDeletebyMap(){
        HashMap<String,Object> map=new HashMap<>();
        map.put("id",1327089590540029953L);
        userMapper.deleteByMap(map);
    }

 

 

 

我们在工组中会遇到一些问题:逻辑删除!

 

逻辑删除

我们先来看一下物理删除和逻辑删除的概念:
物理删除从数据库中直接移除
逻辑删除再数据库中没有被移除,而是通过一个变量来让他失效!deleted =0=> deleted =1

实例:管理员可以查看被删除的记录!防止数据的丢失,类似于回收站!

 

 

 

测试步骤:

1在数据表中增加一个deleted字段:

 

 

2,在pojo实体类中添加相应的字段:

  @TableLogic//逻辑删除注解
    private Integer deleted;

 

 3.配置类中添加组件

    @Bean//逻辑删除组件
    public ISqlInjector sqlInjector(){
        return new LogicSqlInjector();
    }

 

 

 

#配置逻辑删除
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0

 

 

 测试删除之后:

 

 

 

 

当我们执行查询操作的时候:

 

 

我们的查询条件都会有deleted=0的判断,所以被我们逻辑删除的记录是不同查询到的

 

 

 

可以看出其实id为1的记录并没有真正的删除,只是deleted字段修改成了1;

 

 

posted @ 2020-11-13 16:45  Joker-0927  阅读(726)  评论(0编辑  收藏  举报
// 侧边栏目录