美文网首页mybatis-plus
10.MybatisPlus 逻辑删除操作

10.MybatisPlus 逻辑删除操作

作者: 神奇作手 | 来源:发表于2020-03-27 09:44 被阅读0次

1.逻辑删除简介

逻辑删除是通过数据库字段标识来实现数据删除操作

2.逻辑删除实现

2.1. 在yml配置文件中添加配置
# mybatis-plus配置文件
mybatis-plus:
  # 指定mapper.xml文件位置
  mapper-locations: classpath*:mapper/*.xml
  # 逻辑删除配置
  global-config:
    db-config:
      logic-not-delete-value: 0 #逻辑没删除
      logic-delete-value: 1 #逻辑已删除
2.2. 在User中添加删除标识注解
   @TableLogic//删除标识
    private Integer deleted;//逻辑删除标识(0.未删除,1.已删除)

3.查询中排除删除标识字段及注意事项

排除删除标识字段在查询中显示,自定义的不起作用

    @TableLogic//删除标识
    @TableField(select = false)//排除查询显示
    private Integer deleted;//逻辑删除标识(0.未删除,1.已删除)
package com.mp.delete;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.mp.dao.UserMapper;
import com.mp.entity.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.List;

/**
 * @Description //TODO
 * @Author LL
 * @Date 2020-03-26 16:47
 */
@SpringBootTest
@RunWith(SpringRunner.class)
public class deleteTest {

    private final static org.slf4j.Logger logger = LoggerFactory.getLogger(deleteTest.class);

    @Autowired
    private UserMapper userMapper;

    /**
     * 测试删除前后
     */
    @Test
    public void deleteById(){
        List<User> usersB = userMapper.selectList(null);
        logger.warn("-->删除前数据总数:"+usersB.size());

        int rows = userMapper.deleteById(1172422496554401794L);
        logger.warn("-->删除影响行数:"+rows);

        List<User> usersA = userMapper.selectList(null);
        logger.warn("-->删除后数据总数:"+usersA.size());
        usersA.forEach(System.out::println);
    }

    /**
     * 测试删除标识是否器作用
     */
    @Test
    public void select(){
        LambdaQueryWrapper<User> lambdaQuery = Wrappers.lambdaQuery();
        lambdaQuery.gt(User::getAge, 20);
        List<User> users = userMapper.selectList(lambdaQuery);
//        List<Map<String, Object>> users = userMapper.selectMaps(lambdaQuery);
        users.forEach(System.out::println);
    }
}

自定义删除方法,得在条件中添加删除过滤条件,或在SQL中添加删除过滤条件

package com.mp.dao;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.mp.entity.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;

/**
 * @Description 数据访问层
 * @Author LL
 * @Date 2020-03-26 16:09
 */
public interface UserMapper extends BaseMapper<User> {

    @Select("select * from tb_user ${ew.customSqlSegment}")
    List<User> mySelectList(@Param(Constants.WRAPPER)Wrapper<User> wrapper);
}
  /**
     * 自定义删除方法
     */
    @Test
    public void mySelect(){
        LambdaQueryWrapper<User> lambdaQuery = Wrappers.lambdaQuery();
        lambdaQuery.gt(User::getAge, 20).eq(User::getDeleted, 0);
        List<User> users = userMapper.mySelectList(lambdaQuery);
        users.forEach(System.out::println);
    }

相关文章

  • 10.MybatisPlus 逻辑删除操作

    1.逻辑删除简介 逻辑删除是通过数据库字段标识来实现数据删除操作 2.逻辑删除实现 2.1. 在yml配置文件中添...

  • Django操作接口集删除(十三)

    今天是删除接口集的操作,删除的话可以做成物理删除和逻辑删除。由于数据有可能需要被找回,所以采用的是逻辑删除。首先是...

  • 如何设计产品【评论】模块

    10个关键点 展示样式、排序规则、操作行为、跳转逻辑、运营操作、被删除/屏蔽后显示逻辑、防呆设计、快捷操作、富媒体...

  • Django 自定义软删除Model

    软删除介绍 简单的说,就是当执行删除操作的时候,不真正执行删除操作,而是在逻辑上删除一条记录。这样做的好处是可以统...

  • 红黑树删除学习

    红黑树删除 删除数据 红黑树,删除操作较为复杂,要确保逻辑的正确性,更为麻烦。所以我们仍然需要用自检测代码进行删除...

  • Mybatis-Plus删除操作以及实现逻辑删除

    1、根据id删除记录 2、批量删除 3、简单的条件查询删除 4、逻辑删除 物理删除:真实删除,将对应数据从数据库中...

  • 记一次mysql死锁问题

    场景:innodb下不同的事务进行更新和插入操作导致数据库死锁,代码如下,在批量插入之前,进行了逻辑删除操作,这段...

  • 删除逻辑

    删除企业: 删除company表;企业中的用户变为个人版;原企业中的群组变成个人版;企业中的资源属于个人版群组;取...

  • Oracle:误删除数据回退

    Oracle数据库在开启归档模式下,如何回退由delete、update等误操作导致的数据逻辑删除、修改,以下...

  • Mysql 数据库

    数据库的主要操作包括: 数据库的操作:创建、删除 表的操作:创建、修改、删除 数据的操作:增加、修改、删除、查询 ...

网友评论

    本文标题:10.MybatisPlus 逻辑删除操作

    本文链接:https://www.haomeiwen.com/subject/qfucuhtx.html