【MybatisPlus-updateById】| 更新字段失效 | 很难受的一个BUG

目录

  • 一. 🦁 写在前面
  • 二. 🦁 探索过程
  • 三. 🦁 原理解释
  • 四. 🦁 最后

权限管理

一. 🦁 写在前面

如题所言,很难受!!!
原因是 🦁 在写项目的时候,使用 MybatisPlus(为图方便,后面直接叫MP) 碰到一个奇怪的BUG,但是系统没报错,并且运行成功了!那就是我在写管理员后台的时候,测试修改密码这个功能,改了一下目前登录的管理员的密码(由123456——>123),由于密码是加密存储的(使用的是 SpringSecurity 自带的加密),我也没多留意数据库是否修改成功!也没看 IDEA 控制台的打印信息,自信地以为已经测试好了!
N 年过去了… … …~惨遭打脸!!!

二. 🦁 探索过程

因为某些原因重启项目!登录的时候发现输入密码错误:
在这里插入图片描述

这会我不自信了!为啥会这样嘞?我记得我上次改了密码了呀?难道我没改?(现在想想笑死了!) 于是我又使用以前的密码登录!
没想到登录成功了。。。
在这里插入图片描述
我就纳闷了,为啥这个密码会修改失灵呢?
重新测试一次,显示操作成功!直接看控制台,发现数据库更新条数为0 。。。
在这里插入图片描述
我直接去看了一下我的逻辑!发现没问题呀,这个操作又不难!但是由于这个是单表操作,我直接调用 MP 的 api —— updateById()实现的。难道是这个api有毛病?于是我半信半疑将这个方法换成:

public abstract int update( 
	@Param("et") T entity,
	@Param("ew") com.baomidou.mybatisplus.core.conditions.Wrapper<T> updateWrapper
)

修改成功!无疑就是 updateById() 有问题!
就很好奇为啥会这样?

三. 🦁 原理解释

查资料,看官网!
发现这个 BUG 是 MyBatis-Plus 对字段的验证策略导致的,MyBatis-Plus默认进行了不是全量更新的策略:

   mybatis-plus:
      global-config:
        #字段策略 0: 忽略判断 1:非 NULL 判断 2: 非空判断
        field-strategy: 1

默认情况下,该字段的验证策略为1,即不能为空(NOT NULL)。在进行更新操作时,会进行空值判断,并默认不更新为null的传参。

而 🦁 数据库的表有个创建时间和更新时间的字段,在更新时,并没有考虑到这个字段的更新,参数就会有一个为 null,最后更新失效了!
在这里插入图片描述

四. 🦁 最后

又又遇到一个小BUG,记录一下!希望能帮助到屏幕前的你!


在这里插入图片描述

🦁 其它优质专栏推荐 🦁

🌟《Java核心系列(修炼内功,无上心法)》: 主要是JDK源码的核心讲解,几乎每篇文章都过万字,让你详细掌握每一个知识点!

🌟 《springBoot 源码剥析核心系列》:一些场景的Springboot源码剥析以及常用Springboot相关知识点解读

欢迎加入狮子的社区:『Lion-编程进阶之路』,日常收录优质好文

更多文章可持续关注上方🦁的博客,2024咱们顶峰相见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/495619.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker大全

Docker大全 Docker安装准备工作开启虚拟机系统卸载Docker在线安装Docker离线安装Docker Docker服务基本操作启动docker服务查看docker状态设置docker开机自启禁用docker开机自启重新启动docker服务查看docker信息查看docker info中具体key的信息停止docker服务docker镜像加速 D…

高效沟通:总裁口才提升之道

高效沟通&#xff1a;总裁口才提升之道 在当今这个信息爆炸的时代&#xff0c;沟通已经成为了企业与个人之间不可或缺的一部分。而对于企业的总裁来说&#xff0c;良好的口才更是其领导力的体现和成功的保障。因此&#xff0c;如何提升总裁的口才&#xff0c;实现高效沟通&…

2024运维堡垒机品牌排名看这里!

2024运维堡垒机品牌排名看这里&#xff01; 1、行云管家 2、天磊卫士 3、阿里云 4、华为云 5、安恒 6、JumpServer 7、山石网科 8、齐治 9、启明星辰 10、奇安信 11、迪普科技 12、腾讯云 13、中远麒麟 备注&#xff1a;以上排名不分先后 运维堡垒机定义 运维堡…

Chrome 插件打包发布

插件打包发布 一、打包成 zip 包 最简单方便的一种其实就是打包成 zip 包&#xff0c;通过下载链接进行下载&#xff0c;在包里面通过设置版本号和数据库的版本号对比来提醒用户进行新包的下载。 二、发布到 Chrome 应用商店 1. 注册成为开发者 在发布到 chrome 应用商店之…

Linux系统使用Docker部署MongoDB数据库并实现无公网IP远程访问

文章目录 前言1. 安装Docker2. 使用Docker拉取MongoDB镜像3. 创建并启动MongoDB容器4. 本地连接测试5. 公网远程访问本地MongoDB容器5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定TCP地址远程访问 前言 本文主要介绍如何在Linux Ubuntu系统使用Docker快速部署Mon…

【Java程序设计】【C00387】基于(JavaWeb)Springboot的校园食堂订餐系统(有论文)

基于&#xff08;JavaWeb&#xff09;Springboot的校园食堂订餐系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过…

企业如何申请邓白氏编码(DUNS)呢?

尤其是食品企业&#xff0c;药品企业在申请美国FDA认证的时候&#xff0c;经常会听到一个名词——“邓白氏编码”&#xff0c;申请邓白氏编码是企业顺利完成FDA注册认证的必要前提&#xff0c;因此都需要提供邓白氏编码。 今天&#xff0c;小编就来为大家详细介绍下邓白氏编码…

前端大文件分片上传

1.分片上传整体流程 开始上传&#xff1a;前端启动文件分片上传。后端返回唯一标识。分片上传&#xff1a;获取到上传的文件&#xff0c;然后设置一个固定的分片大小&#xff0c;将文件切成多个小片&#xff0c;计算出每一个分片的MD5值&#xff08;32位&#xff09;。将每个分…

证书(公钥):网络安全的关键

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【算法刷题】链表笔试题解析(1)

一、链表分割 题目描述&#xff1a; 链接&#xff1a;链表分割 题目分析&#xff1a; 这题直接处理并不好做&#xff0c;我们可以构建前后两个链表&#xff0c;将小于x值的结点放在链表a内&#xff0c;将其它结点放在链表b内&#xff0c;这样将原链表遍历完后&#xff0c;原链…

OSCP靶场--image

OSCP靶场–image 考点(CVE-2023-34152 suid strace提权) 1.nmap扫描 ## ┌──(root㉿kali)-[~/Desktop] └─# nmap -Pn -sC -sV 192.168.178.178 --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-27 23:43 EDT Nmap scan report for 192.168.178.17…

手机照片恢复:两种方法轻松找回您的珍贵照片!

我们的日常生活中&#xff0c;苹果手机已经成为了记录珍贵时刻的得力工具&#xff0c;而其中最重要的要数照片了。然而&#xff0c;有时候不可避免地会出现误删照片的情况&#xff0c;可能是因为手误、设备故障或其他原因。 当您发现重要的照片不见了&#xff0c;往往会感到焦…

「18」如何让你直播间增加高级质感,效果滤镜是你不二选择?

「18」效果滤镜给你的布景增加质感&#xff0c;更具视觉效果 首先&#xff0c;安装&#xff08;模糊滤镜的‘streamfx’&#xff09;安装包。安装成功后&#xff0c;StreamFX 会出现在 OBS 的菜单栏上。在OBS软件里滤镜可分为效果滤镜和音视频滤镜。 一、音视频滤镜 在选择「…

yolov8 pose keypoint解读

yolov8进行关键点检测的代码如下&#xff1a; from ultralytics import YOLO# Load a model model YOLO(yolov8n.pt) # pretrained YOLOv8n model# Run batched inference on a list of images results model([im1.jpg, im2.jpg]) # return a list of Results objects# Pr…

阿里云效CICD流水线提交前后端项目

后端 一、新建流水线 1进入流水线 2新建流水线 3选择流水线模板 二、上传后端项目 1 将后端项目发布至代码仓库后&#xff0c;在流水线中选择流水线源 我们在选择流水线源之后会出现扫描失败的情况 查看日志发现是因为我们的项目是多模块项目&#xff0c;再扫描的时候无法在…

浏览器扩展程序增加 vue_dev_tools 调试工具

1、引言 在做 Vue 项目的开发时&#xff0c;我们经常需要在页面上调试&#xff0c;接下来介绍如何在浏览器扩展程序增加 vue_dev_tools 调试工具。 Download the Vue Devtools extension for a better development experience 翻译&#xff1a;下载Vue Devtools扩展以获得更好…

C语言例4-30:将一个正整数的各位数字逆序输出

算法分析&#xff1a; 提取某一个正整数的最末一位数字&#xff0c;采用取模10的余数获得&#xff0c;以此类推即可。 代码如下&#xff1a; //将一个正整数的各位数字逆序输出 #include<stdio.h> int main(void) {int i,r;printf("输入一个正整数&#xff1a; \…

地方废物回收机构管理的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文&#xff08;设计&#xff09;学生选题参考合集推荐收藏&#xff08;包含Springboot、jsp、ssmvue等技术项目合集&#xff09; 目录 1. …

雷尼绍 VIONiC高精度光栅尺品助力高精度运动控制系统

随着科技的不断进步&#xff0c;对运动控制精度的要求不断提高。雷尼绍Renishaw推出的VIONiC系列是一款超高精度、超小型的一体化数字增量式光栅&#xff0c;可提供直接的数字位置反馈&#xff0c;具有卓越的测量性能、极高的运行速度和可靠性&#xff0c;成为高精度运动控制系…

C语言-Win11安装古老的VC6.0

win11安装VC6 有些学校一直还在使用VC6.0&#xff0c;我们尝试在Win1 下安装这个老古董&#xff0c;以下是在win11下安装VC6.0的方法。 点击安装文件 输入产品序列号 修改公共安装文件夹 如果C盘空间足够可以不用修改。 此处会发现鼠标一直在转圈不能完成更新系统&#xff0c;可…