当前位置: 首页 > news >正文

MySQL驱动对MYSQL进行update操作时返回值注意UseAffectedRows

数据库upate更新表时经常要用,update的结果进行一些逻辑判断,如返回值大于1表示更新成功,为0表示更新失败。

但是使用Mysql驱动连接数据库并进行update操作时,返回值可能不在预期。

update iwrs_drug_order set  status=2 where orderno=?

这个sql无论执行多少遍,update返回值都可能是1。原因在于MySQL的连接URL。

最简单的MySQL连接URL:

jdbc:mysql://127.0.0.1:3306/crct?characterEncoding=utf-8
这样写执行简单的操作没有异常抛出,但是当执行update的时候,以上update语句时返回值一直会大于0。

原因是执行update默认返回的是where条件match的条件数,在SQL1中,由于where条件为id=?,无论更新多少次,where条件总能match一条数据,所以update返回值一直等于1.

解决这个问题方法:

对mysqlURL进行修改,添加参数useAffectedRows=true。

jdbc:mysql://127.0.0.1:3306/crct?characterEncoding=utf-8&useAffectedRows=true

说明:useAffectedRows的作用在于是否用受影响的行数替代查找到的行数来返回数据,默认 false。指定这个值后,更新时会返回更新的行数,按照SQL1执行update操作也会返回正常值,即第一次返回1,第二次返回0.

http://www.lryc.cn/news/65459.html

相关文章:

  • OpenCV-Python图像几何变换
  • 国民技术N32G430开发笔记(15)- IAP升级 树莓派串口发送数据
  • svo论文解读
  • DolphinScheduler海豚调度教程
  • ubuntu脚本解释器踩坑:#!/bin/bash 与 #!/bin/sh
  • 小松鼠踩一踩游戏
  • 使用crontab命令同步时间
  • TortoiseGit提示No supported authentication methods available异常
  • 基于哈希表的用户管理系统
  • GO数组切片-线性数据结构
  • C++ STL学习之【优先级队列】
  • keepalived脑裂现象
  • [stable-diffusion-art] 指北-1
  • 「C/C++」C/C++预处理器
  • java语言入门教程文章
  • 基于灰狼算法的极限学习机(ELM)回归预测-附代码
  • 【五一创作】ERP实施-委外业务-委外采购业务
  • DAY 54 数据库基础
  • 网络编程 总结二
  • 消息称苹果Type-C口充电未设MFi限制,iOS17将更新Find My服务
  • 设计模式——工厂模式(简单工厂、工厂方法、抽象工厂)
  • 《C语言技术体系》 学习路线总目录 + 思维导图
  • 数字图像处理简答题
  • 【Java校招面试】基础知识(五)——GC
  • 使用CMake调用Makefile 项目
  • 快速傅里叶变换FFT学习笔记
  • 如何下载安装驱动
  • 鸿蒙Hi3861学习四-Huawei LiteOS介绍
  • Vue核心 收集表单数据 过滤器
  • 华为EC6108V9E/EC6108V9I_rk3228_安卓4.4.4_通刷_卡刷固件包