关于executeUpdate方法返回的值问题
今天在项目中出现了一个问题,delete 语句使用executeUpdate方法后,如果是更新一条数则返回1,但是更新一条以上数据就出现返回0的问题,我一直以为executeUpdate返回更新的条数是错误的?带着疑问我们查看源码:
@Overridepublic int update(final String sql) throws DataAccessException {Assert.notNull(sql, "SQL must not be null");if (logger.isDebugEnabled()) {logger.debug("Executing SQL update [" + sql + "]");}class UpdateStatementCallback implements StatementCallback<Integer>, SqlProvider {@Overridepublic Integer doInStatement(Statement stmt) throws SQLException {int rows = stmt.executeUpdate(sql);if (logger.isDebugEnabled()) {logger.debug("SQL update affected " + rows + " rows");}return rows;}@Overridepublic String getSql() {return sql;}}return execute(new UpdateStatementCallback());}
从源码上看,update方法返回的就是 stmt.executeUpdate(sql) 方法返回的条数,那么上述更新多条出现0的情况是什么问题?但是执行update语句的话返回的值就是正确的,难道是执行delete语句后数据被删除了,则返回空了?那之前我执行删除一条数据为啥返回1呢?没道理呀。。。。我们继续深入分析,原来是自己上层调用的方法已经将数据删除了,所以再次执行执行delete语句返回0,对自己的用法充满无奈。。。。。。。。。。。。。。
总结
executeUpdate 方法返回的是被更新条数,如果是删除语句则是被删除的条数
关于executeUpdate方法返回的值问题相关推荐
- 中如何直接使用方法返回的值_java基础-2-方法、面向对象
一.方法 1.1.定义:方法可以认为我们写程序中所要实现的某一个功能,方法中会包含很多条语句.流程控制.循环等,这些内容组合起来去处理一件事情. 1.2.方法的声明: 方法的声明位置必须写在类中,并且 ...
- java 方法返回的值,java方法返回值问题
public boolean Find(int target, int[][] array) { //如果array.length小于等于0,跳过for循环,goto label_1,此时该方法无返回 ...
- 用ADO.NET的ExecuteScalar方法返回单一值-资讯动态
[转]http://www.bitscn.com/pdb/dotnet/200807/147205.html 若您程序中执行的 SQL statement 或 Stored Procedure,只是要 ...
- java方法带参数返回值_Java方法中的参数太多,第6部分:方法返回
java方法带参数返回值 在当前的系列文章中,我正在致力于减少调用Java方法和构造函数所需的参数数量,到目前为止,我一直专注于直接影响参数本身的方法( 自定义类型 , 参数对象 , 构建器模式 , ...
- java 返回布尔值_如何使用Java方法返回的布尔值?
我有一个方法,发送一堆字符到另一个方法,如果某些字符存在,将返回true或false.一旦这个方法评估所有的字符,并为每个字符返回true或false,我如何在另一个方法中使用这些true或false ...
- Java方法中的参数太多,第6部分:方法返回
在当前的系列文章中,我正在致力于减少调用Java方法和构造函数所需的参数数量,到目前为止,我一直专注于直接影响参数本身的方法( 自定义类型 , 参数对象 , 构建器模式 , 方法重载和方法命名 ). ...
- C# 数据库SqlServer基础增删改查(返回单个值)
本文主要介绍C#结合SQLServer数据库,如何完成最基础的增删改查,其中的查只返回第一行第一列的单个值. 目录 一.环境介绍 二.代码 (一)向数据库中增加一条数据 (二)删除数据库中一条数据 ( ...
- SpringMVC入门(二)—— 参数的传递、Controller方法返回值、json数据交互、异常处理、图片上传、拦截器
SpringMVC入门(二)-- 参数的传递.Controller方法返回值.json数据交互.异常处理.图片上传.拦截器 参考文章: (1)SpringMVC入门(二)-- 参数的传递.Contro ...
- 记:返回方法参数的值(或多个值),
直接贴示例代码: static void Main(string[] args) {int cs;int s= outfanhui(90, out cs); Console.WriteLine(&qu ...
最新文章
- phpstorm安装_PHPstorm设置浏览器打开代码
- Python读CSV数据
- Android WebView 和 javaScript的互相调用(一)
- 1.1 计算机的发展
- 解决方案仅用于执行startup.bat启动时乱码解决
- vooc充电原理_Reno3系列最快56分钟充满,VOOC闪充技术再次行业领先
- nagios学习笔记(二)
- 二维数组常用的赋值方式
- Swift中文教程(五)控制流
- Python新手学习基础之条件语句——elif语句
- xlinx ISE的程序下载
- 968. 监控二叉树(每日一难phase2--day17)
- 遗传算法matlab_通俗易懂地解释遗传算法
- 想开发一个在线的合同模板管理套件
- 车牌识别ocr为何物—科技普及大讲堂1
- Softing过程自动化解决方案——助力数字化工业
- DELL R730xd 安装PCIE SSD 后风扇转速增高的解决方案
- shamir秘密共享matlab程序,shamir 秘密共享代码
- python爬虫如何防止IP屏蔽
- 绘画新手怎么学习绘画?怎么让自己的绘画作品看起来舒服?
热门文章
- 【虾皮选品分享】马来西亚/菲律宾市场时尚美妆热销趋势
- Android9.0版本Vold服务源码分析
- HTTPS证书过期|SSL证书过期 |华硕路由器| NAS|Certtificate is not valid
- jQuery append( ) 方法
- Servlet+JSP项目
- error LNK2005解决方法
- Vue项目的打包\部署\优化
- Matlab快速创建矩阵的方法(创建特殊矩阵)
- 石头扫地机器人遇见地毯_当戴森V8遇上石头扫地机器人,彻底拯救懒癌患者
- 矩阵/向量/标量间相互求导