mybatis-plus逻辑删除

  1. 首先说一下什么是物理删除----物理删除就是指把数据彻底从数据库删除掉,是彻底的删除干净

    1. 物理删除有个不好的地方就是直接将数据删除干净无法找回
  2. 逻辑删除就很人性化了----逻辑删除是mybatis-plus特有的属性主要是通过插件和特定的一个字段将其隐藏起来,并不是真正意义上的删除,它是可以恢复的

怎么实现的展示一波:
第一步


实体类

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.util.Date;@Data
@NoArgsConstructor
@AllArgsConstructor
public class User5 {@TableId(type = IdType.ID_WORKER)//数字类型的id使用,当类型为Long时默认使用,生成19位的Id值,private String id;private String name;private Integer age;private String email;@TableField(fill = FieldFill.INSERT) //进行添加操作时有值private Date createTime;@TableField(fill = FieldFill.INSERT_UPDATE) //进行添加和修改操作时有值private Date updateTime;//添加version属性,注意添加@Version注解//同时使用TableField设置初始值为1@TableField(fill = FieldFill.INSERT_UPDATE)@Versionprivate Integer version;//添加删除标记@TableLogic@TableField(fill = FieldFill.INSERT)//设置初始值private Integer deleted;public User5(String name, Integer age, String email) {this.name = name;this.age = age;this.email = email;}
}


配置工具类 (需要配置逻辑删除插件)

package cn.com.zzn.config;import com.baomidou.mybatisplus.core.injector.ISqlInjector;
import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;@MapperScan("cn.com.zzn.mapper")//添加扫描注解,写入mapper的路径,否则会找不到接口并报错
@Configuration
public class MybatisPlusConfig {//乐观锁插件@Beanpublic OptimisticLockerInterceptor OptimisticLockerInterceptor(){return new OptimisticLockerInterceptor();}/*
Sql性能分析插件
开发环境使用,上线项目不推荐使用*/@Bean@Profile({"dev","test"})//设置使用环境public PerformanceInterceptor performanceInterceptor(){PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();performanceInterceptor.setMaxTime(1000);//ms值,超过此处的毫秒值则不执行performanceInterceptor.setFormat(true);return performanceInterceptor;}
//    逻辑删除插件@Beanpublic ISqlInjector sqlInjector(){return new LogicSqlInjector();}}

还需配置application.properties

#com.mysql.cj.jdbc.Driver:springBoot2.1以上要加上cj
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#serverTimezone=GMT%2B8:添加时区
spring.datasource.url=jdbc:mysql://localhost:3306/db01?serverTimezone=GMT%2B8
spring.datasource.username=db01
spring.datasource.password=db01#mybatis日志:添加后可以查看执行的sql语句
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#设置当前环境:dev;test;prod
spring.profiles.active=dev
#设置逻辑删除的值:1-已删除;0-没有删除
#可自行设置值,但是一般不设置,1和0为默认值
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0

mybatis-plus 逻辑删除相关推荐

  1. Mybatis Plus逻辑删除

    1.首先在实体类中的删除字段添加注解 @TableLogic @TableField(deleteFiled) private String deleteFiled; 2.在配置文件中设置: myba ...

  2. mybatis 乐观锁和逻辑删除

    本篇介绍easymybatis如配置乐观锁和逻辑删除. 乐观锁 easymybatis提供的乐观锁使用方式跟JPA一样,使用@Version注解来实现.即:数据库增加一个int或long类型字段ver ...

  3. mybatis 乐观锁_MybatisPlus新特性之逻辑删除、乐观锁、自动填充

    MP特性 公共字段的自动填充功能 自动更新全局属性,比如创建的时间修改的时间,这样就不用每执行一次插入更新操作都带上一个set大大节省了很多效率,从而也避免为了因为时间格式的不统一问题. 为了输出日志 ...

  4. MyBatis-Plus 乐观锁 防止超卖、逻辑删除、自动填充、Id自增

    MyBatis-Plus 乐观锁 防止超卖.逻辑删除.自动填充 Day3 前面的简单的讲了一下mybatis-plus的使用 当然有很多不足 我写博客就是想促进大家一起学习 也想让这些内容更简单一些. ...

  5. 浅谈:MyBatis-Plus的CRUD与乐观锁,分页插件,逻辑删除

    浅谈:MyBatis-Plus的CRUD与乐观锁,分页插件,逻辑删除 MyBatis-Plus官方文档连接 什么是MyBatis-Plus 请点击上面官方文档查看 代码演示:代码注释为功能详细解释 数 ...

  6. MybatisPlus实现逻辑删除

    delete 根据id删除记录 //查询user表所有数据 @Test public void findAll() {List<User> users = userMapper.selec ...

  7. mybatis-plus根据多个字段排序_Mybatis Plus学习笔记(逻辑删除/动态填充/常用插件)...

    一.逻辑删除 1.逻辑删除后,将不会被查询出来. mybatis 2.查询中排除逻辑删除字段 在Wrappers.<User>lambdaQuery().eq(User::getIsDel ...

  8. ssm框架逻辑删除mysql_MybatisPlus--CRUD接口及主键增长策略、自动填充、乐观锁更新数据...

    目录 一.insert 1.插入操作 2.主键策略 二.update 1.根据Id更新操作 2.自动填充 3.乐观锁 三.select 1.根据id查询记录 2.通过多个id批量查询 3.简单的条件查 ...

  9. spring boot项目自定义数据源,mybatisplus分页、逻辑删除无效解决方法

    Spring Boot项目中数据源的配置可以通过两种方式实现: 1.application.yml或者application.properties配置 2.注入DataSource及SqlSessio ...

最新文章

  1. 页面导航的基础与深入
  2. containerd设置上网代理
  3. 程序员懂算法玩“淮安掼蛋”是否更有优势?
  4. 构建新模式java_Nacos 1.3.0 来了,基于全新内核构建!
  5. 简单扫一下官文 - 11G Release2 新特性
  6. QString string int double char 相互转化
  7. android之Intent的七大属性
  8. C++ 虚拟继承与虚基类
  9. 1041 Be Unique (20 分) 水题
  10. oracle怎么查询关键字,Oracle 搜索关键字
  11. trivial、standard layout、POD和literal类型解析
  12. 实施ERP系统后需要维护吗?
  13. 普通打印机如何才能实现双面打印呢
  14. 解决mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket错误的方法
  15. 【CISSP备考笔记】第2章:资产安全
  16. linux分区格式化命令
  17. 概论_第2章_一维均匀分布的概率公式
  18. 输入一个url到呈现一个页面,到底发生了啥?
  19. 网络与信息安全产品(一)
  20. php实现第三方登录

热门文章

  1. 看!这组灵感超赞的创意海报!值得设计师收藏
  2. 看完这些美食海报,你是不是又有灵感了?
  3. 菜单黑暗模式UI动画素材模板
  4. 处理器指令编码可重定义的方法_RISC-V学习笔记1 《基于FPGA与RISC-V的嵌入式系统设计》第3章 RISC-V指令集...
  5. everything服务器网页设置,Everything HTTP 服务器设置
  6. 手绘时钟的设计与实现
  7. CentOS RPM源镜像源(国内+国外)
  8. slab 着色如何最大限度地利用 Cache Lines 或 Cache Rows?
  9. Linux内核安装-5.9.1为例
  10. ZeroMQ简介:一种高性能的异步消息传递库