广告
返回顶部
首页 > 资讯 > 后端开发 > Python >mybatisplus的逻辑删除问题
  • 261
分享到

mybatisplus的逻辑删除问题

mybatisplus逻辑删除逻辑删除 2023-03-10 11:03:39 261人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录mybatisplus的逻辑删除使用mybatisplus逻辑删除,修改含有逻辑删除的字段爆错总结mybatisplus的逻辑删除 mp提供的逻辑删除实现起来非常简单 只需要在a

mybatisplus的逻辑删除

mp提供的逻辑删除实现起来非常简单

只需要在application.yml中进行逻辑删除的相关配置即可

mybatis-plus:  
  global-config:  
    db-config:  
      logic-delete-field: deleted # 全局逻辑删除的实体字段名  
      logic-delete-value: 1 # 逻辑已删除值(默认为1)  
      logic-not-delete-value: 0 # 逻辑未删除值(默认为0)  
      # 若逻辑已删除和未删除的值和默认值一样,则可以不配置这2项

测试代码

int i = mapper.deleteById(6);  
		System.out.println("rowAffected = " + i);  

在这里插入图片描述

可以看到,发出的sql不再是DELETE,而是UPDATE

此时我们再执行一次SELECT

@Test  
public void testSelect() {  
	List<User2> users = mapper.selectList(null);  
}

在这里插入图片描述

可以看到,发出的SQL语句,会自动在WHERE后面拼接逻辑未删除的条件。

查询出来的结果中,没有了id为6的王软蛋。

若想要SELECT的列,不包括逻辑删除的那一列,则可以在实体类中通过@TableField进行配置

@TableField(select = false)  
private Integer deleted;

可以看到下图的执行结果中,SELECT中已经不包含deleted这一列了

在这里插入图片描述

前面在application.yml中做的配置,是全局的。通常来说,对于多个表,我们也会统一逻辑删除字段的名称,统一逻辑已删除和未删除的值,所以全局配置即可。

当然,若要对某些表进行单独配置,在实体类的对应字段上使用@TableLogic即可。

@TableLogic(value = "0", delval = "1")  
private Integer deleted;

【小结】

开启mp的逻辑删除后,会对SQL产生如下的影响

  • INSERT语句:没有影响
  • SELECT语句:追加WHERE条件,过滤掉已删除的数据
  • UPDATE语句:追加WHERE条件,防止更新到已删除的数据
  • DELETE语句:转变为UPDATE语句

注意,上述的影响,只针对mp自动注入的SQL生效。如果是自己手动添加的自定义SQL,则不会生效。

比如:

public interface User2Mapper extends BaseMapper<User2> {  
	@Select("select * from user2")  
	List<User2> selectRaw();  
}

调用这个selectRaw,则mp的逻辑删除不会生效。

另,逻辑删除可在application.yml中进行全局配置,也可在实体类中用@TableLogic进行局部配置。

使用mybatisplus逻辑删除,修改含有逻辑删除的字段爆错

mybatisplus在配置文件中配置如下

以上是全局逻辑删除配置。

当使用mybatisplus生成的修改方法,修改含有showStatus对应的字段时,会报错。

错误sql语句如下

而我要修改的如下:

正确的修改的sql语句应该如下:

所以我们可以在xml文件中单独写sql语句

或者不在配置文件中设置逻辑删除字段名 使用@TableLogic注解

如下:

showStatus是表示此信息是否显示。

如:

表示 show_status等于0时 brand_id (即id)=1591652104429125634 的信息不显示。

这样我们就是局部使用逻辑删除。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: mybatisplus的逻辑删除问题

本文链接: https://www.lsjlt.com/news/199266.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mybatisplus的逻辑删除问题
    目录mybatisplus的逻辑删除使用mybatisplus逻辑删除,修改含有逻辑删除的字段爆错总结mybatisplus的逻辑删除 mp提供的逻辑删除实现起来非常简单 只需要在a...
    99+
    2023-03-10
    mybatisplus逻辑删除 逻辑删除
  • mybatisplus的逻辑删除问题怎么解决
    本文小编为大家详细介绍“mybatisplus的逻辑删除问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“mybatisplus的逻辑删除问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。myb...
    99+
    2023-07-05
  • mybatisplus逻辑删除如何实现
    这篇文章主要介绍了mybatisplus逻辑删除如何实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mybatisplus逻辑删除如何实现文章都会有所收获,下面我们一起来看看吧。mybatisplus中逻辑删...
    99+
    2023-07-05
  • mybatisPlus怎么实现逻辑删除
    本篇内容主要讲解“mybatisPlus怎么实现逻辑删除”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mybatisPlus怎么实现逻辑删除”吧!网上大部分的关于mybatisPlus的逻辑删除...
    99+
    2023-06-29
  • 详解MyBatisPlus逻辑删除与唯一索引冲突问题
    1、问题背景: 在开发中,我们经常会有逻辑删除和唯一索引同时使用的情况。但当使用mybatis plus时,如果同时使用逻辑删除和唯一索引,会报数据重复Duplicate entr...
    99+
    2022-11-11
  • mybatisPlus填坑之逻辑删除的实现
    网上大部分的关于mybatisPlus的逻辑删除的配置介绍都是有问题的,原因可能是官网已经做了更新!!!错误如图: 正确的配置是: SpringBoot 配置方式: applica...
    99+
    2022-11-13
  • 解析MyBatisPlus解决逻辑删除与唯一索引的兼容问题
    目录需求背景二、MyBatisPlus逻辑删除三、测试1、用户表2、创建对应实体3、物理删除测试4、逻辑删除测试需求背景 比如有张用户表,在插入或者更新数据的时候,我们需要 ...
    99+
    2023-05-15
    MyBatisPlus逻辑删除与唯一索引 MyBatisPlus逻辑删除
  • MybatisPlus实现逻辑删除的示例代码
    目录1、什么是逻辑删除2、使用说明:3、如何使用Mybatis Plus实现逻辑删除4、测试1、什么是逻辑删除 逻辑删除是名义上的删除,就是对要要删除的数据打上一个删除标记,在逻辑上...
    99+
    2023-05-19
    MybatisPlus逻辑删除 Mybatis 逻辑删除
  • 怎么用MyBatisPlus解决逻辑删除与唯一索引的兼容问题
    这篇文章主要介绍“怎么用MyBatisPlus解决逻辑删除与唯一索引的兼容问题”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用MyBatisPlus解决逻辑删除与唯一索引的兼容问题”文章能帮助大...
    99+
    2023-07-06
  • 关于mybatis-plus逻辑删除无效的问题
    添加如下注解value代表默认值delval代表删除时的值 @TableLogic(value = "0", delval = "1") @TableField...
    99+
    2022-11-12
  • Mybatis-plus逻辑删除
    实际开发中,数据删除一般有2种选择: 1:物理删除 物理删除,也称为硬删除,指的是数据直接从数据库中移除,对应的SQL语句:DELETE FROM 表 where 条件,这种删除成功后,数据就无法再恢复啦。 2:逻辑删除 ...
    99+
    2023-09-01
    数据库 mysql sql
  • MyBatisPlus逻辑删除与唯一索引冲突的示例分析
    小编给大家分享一下MyBatisPlus逻辑删除与唯一索引冲突的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、问题背景:在开发中,我们经常会有逻辑删除...
    99+
    2023-06-14
  • MyBatis-Plus解决逻辑删除与唯一索引的问题
    目录简介问题复现建库建表代码测试解决方案方案1:将字段设置为id(推荐)方案2:将字段设置为当前时间(不推荐)简介 说明 本文用示例介绍MyBatis-Plus如何解决逻辑删除与唯一...
    99+
    2022-11-13
    MyBatis-Plus 逻辑删除 MyBatis-Plus 唯一索引
  • 关于mybatis-plus逻辑删除自动填充更新时间的问题
    目录前言问题发现寻找原因解决方法方法一方法二补充写法前言 mybatis-plus是对mybatis的增强,mybatis-plus更像是面向对象编程,数据库基本CRUD的操作可以不...
    99+
    2022-11-13
  • thinkphp怎么实现逻辑删除
    本篇内容主要讲解“thinkphp怎么实现逻辑删除”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“thinkphp怎么实现逻辑删除”吧!ThinkPHP 逻辑删除:什么是逻辑删除及如何使用它?在一...
    99+
    2023-07-05
  • Mybatisplus怎么自定义SQL注入器查询@TableLogic逻辑删除后的数据
    这篇文章主要介绍了Mybatisplus怎么自定义SQL注入器查询@TableLogic逻辑删除后的数据的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Mybatisplus怎么自定义SQL注入器查询@Table...
    99+
    2023-07-05
  • MyBatis-Plus的物理删除和逻辑删除(使用场景)
    物理删除:真实删除,将数据从数据库中删除,删除后查询不到被删除的数据 逻辑删除:假删除,方便删除之后的数据恢复 在表中添加一个status字段,作为删除的标准,每次删除时,修改标志...
    99+
    2022-11-12
  • mysql中恢复逻辑删除方法
    本文主要给大家简单讲讲mysql中恢复逻辑删除方法,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望mysql中恢复逻辑删除方法这篇文章可以给大家带来一些实际帮...
    99+
    2022-10-18
  • mybatis plus实现分页逻辑删除
    一、分页 通过mybatis-plus实现分页,也是很简单,插件大法。 1、配置分页插件 把分页的插件也配置到统一的配置类里: @Configuration // 配置扫描mappe...
    99+
    2022-11-13
  • mybatis-plus如何配置逻辑删除
    目录mybatis-plus配置逻辑删除逻辑删除失效原因及解决方案测试依赖解决方案mybatis-plus配置逻辑删除 引入jar包 <!--mybatis-plus-->...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作