项目技术点-MybatisPlus 实现逻辑删除 | 学习笔记

简介: 快速学习 项目技术点-MybatisPlus 实现逻辑删除

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot)项目技术点-MybatisPlus 实现逻辑删除】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/667/detail/11275


项目技术点-MybatisPlus 实现逻辑删除


目录:

一.物理删除

二.逻辑删除


简介:

●物理删除:

真实删除,将对应数据从数据库中删除,之后查询不到此条被删除数据。

●逻辑删除:

假删除,将对应数据中代表是否被删除字段状态修改为“被删除状态",之后在数据库中仍旧能看到此条数据记录。


(一)物理删除

1、根据 id 删除记录

@Test

public void testDeleteById()

int result=userMapper.deleteById(8L);

System.out.println(result);

2.批量删除

@Test

public void testDeleteBatchIds ()

int result.userMapper.deleteBatchIds(Arrays.asList(8,9,10));

System.out.println(result);

3.物理删除代码

//删除操作物理删除

@Test

public void testDeleteById0

int result = userMapper.deleteById(serializable:1L;

System.out.println(result);


(二)逻辑删除

(1)数据库中添加 deleted 字段

ALTER TABLE "user" ADD COLUMIN、deleted boolean

deleted    tiny    int   1  0

(2)实体类添加 deleted 字段

并加上@TableLogic 注解和@TableField(flI = FieldiIl.INSERT)注解

@TableLogic

@TableField(fill = FieldFill.INSERT)

private Integer deleted;

(3) 元对象处理器接口添加 deleted 的 inser 默认值

@Override

public void insertFill (Meta0bject meta0bject)

this.setFieldValByName("deleted",0,metaObject);

(4) application.properties 加入配置

此为默认值,如果你的默认值和 mp 默认的一样,该配置可无

mybatis-plus.global-config.db-config.logic-delete-value=1

mybatis-plus.global-config.db-config.logic-not-delete-value-0

(5)在 MybatisPlusConfig 中注册 Bean

@Bean

public ISqlInjector sqlInjector()

return new LogicSqlInjector();

(6)测试逻辑删除

测试后发现,数据并没有被删除, deleted 字段的值由0变成了1

测试后分析打印的 sq 语句,是一条 update

注意:

被删除数据的 deleted 字段的值必须是0,才能被选取出来执行逻辑删除的操作

/**

测试逻辑删除

*/

@Test

public void testLogicDelete()

int result.userMapper.deleteById(1L);

System.out.println(result);

相关文章
|
前端开发 Java 关系型数据库
SpringBoot+MyBatis 天猫商城项目
SpringBoot+MyBatis 天猫商城项目
208 1
|
NoSQL Java 数据库连接
SpringBoot-搭建Mybatis项目
通过本文的学习,读者将了解如何使用IntelliJ IDEA快速搭建一个基于SpringBoot和Mybatis的Java Web应用程序,提高开发效率。
617 0
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
2673 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
|
Java 数据库连接 mybatis
成功解决: Invalid bound statement (not found) 在已经使用mybatis的项目里引入mybatis-plus,结果不能共存的解决
这篇文章讨论了在已使用MyBatis的项目中引入MyBatis-Plus后出现的"Invalid bound statement (not found)"错误,并提供了解决方法,主要是通过修改yml配置文件来解决MyBatis和MyBatis-Plus共存时的冲突问题。
成功解决: Invalid bound statement (not found) 在已经使用mybatis的项目里引入mybatis-plus,结果不能共存的解决
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
281 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
Java 数据库连接 数据库
大事件后端项目05-----springboot整合mybatis
大事件后端项目05-----springboot整合mybatis
大事件后端项目05-----springboot整合mybatis
|
Java 关系型数据库 MySQL
1、Mybatis-Plus 创建SpringBoot项目
这篇文章是关于如何创建一个SpringBoot项目,包括在`pom.xml`文件中引入依赖、在`application.yml`文件中配置数据库连接,以及加入日志功能的详细步骤和示例代码。
|
SQL Java 数据库连接
springboot+mybatis+shiro项目中使用shiro实现登录用户的权限验证。权限表、角色表、用户表。从不同的表中收集用户的权限、
这篇文章介绍了在Spring Boot + MyBatis + Shiro项目中,如何使用Shiro框架实现登录用户的权限验证,包括用户、角色和权限表的设计,以及通过多个表查询来收集和验证用户权限的方法和代码实现。
springboot+mybatis+shiro项目中使用shiro实现登录用户的权限验证。权限表、角色表、用户表。从不同的表中收集用户的权限、
|
Java 数据库连接 Spring
搭建 spring boot + mybatis plus 项目框架并进行调试
搭建 spring boot + mybatis plus 项目框架并进行调试
379 4
|
Java 数据库连接 Maven
文本,使用SpringBoot工程创建一个Mybatis-plus项目,Mybatis-plus在编写数据层接口,用extends BaseMapper<User>继承实体类
文本,使用SpringBoot工程创建一个Mybatis-plus项目,Mybatis-plus在编写数据层接口,用extends BaseMapper<User>继承实体类