码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • mybatis update 语句的坑


    最近在使用mybatis进行修改时遇到了一个很奇怪的问题 , 先看下相关的部分代码如下图:
    (第一个日志写错了 , 应该是写before的 , 先忽略)
    在这里插入图片描述
    可以看到 , 代码主要就是调用 mapper 对数据库进行操作, 总共3步, 先查询 , 再更新, 更新完后在查 , 然后打印了一些日志排查问题.
    但是, 问题点(坑)就再这, 如下图 : 记住 我框起来的部分
    在这里插入图片描述
    执行过程中 可以看到 刚开始查询时fillInfo不是null 的 我执行update 语句时, 传进去fillInfo 是为null 的 , 然后再执行完后再查询时, fillInfo 变成null 了 可是 , 我并不想让 fillInfo 更新成null 的!!! 如下图 我的mybatis 语句:

    在这里插入图片描述
    如上图 , 我框框起来的部分 , 我判断了fillInfo != null 才进行更新 , 可是通过日志来看 , 我更新时 fillInfo 明明就是null , 也就是说 ,这个判断没有生效!!! 还把数据库更新成null 了!
    我找了很久的原因 , 最后也没找到 , 如下图是 resultMap 跟 java 类属性 (数据库是 text 类型) , 我尝试过给这个映射关系加上 jdbType 和 javaType , 但是其实也是没啥用
    在这里插入图片描述
    在这里插入图片描述

    最后我只能先把 第一次查询的那个值进行赋值到 update 语句的对象中, 才不会把这个字段数据库中改成 null , 只能说是一个很坑的

  • 相关阅读:
    Cesium之home键开关及相机位置设置
    Unity制作曲线进度条
    Spring Boot Actuator 漏洞利用
    互联网摸鱼日报(2022-12-06)
    智能空开让用电更安全、管理更智能——电脑APP远程控制开合闸
    大学生HTML个人网页作业作品:基于html css实现围棋网页(带报告4800字)
    2023医药微信公众号排名榜top100汇总合集
    初识Apifox——如何使用Apifox做一个简单的接口测试
    关于linux多线程fork的理解和学习
    Vue中的跨域解决方案
  • 原文地址:https://blog.csdn.net/yuyue_999/article/details/126053534
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号