今天在项目中出现了一个问题,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方法返回的值问题相关推荐

  1. 中如何直接使用方法返回的值_java基础-2-方法、面向对象

    一.方法 1.1.定义:方法可以认为我们写程序中所要实现的某一个功能,方法中会包含很多条语句.流程控制.循环等,这些内容组合起来去处理一件事情. 1.2.方法的声明: 方法的声明位置必须写在类中,并且 ...

  2. java 方法返回的值,java方法返回值问题

    public boolean Find(int target, int[][] array) { //如果array.length小于等于0,跳过for循环,goto label_1,此时该方法无返回 ...

  3. 用ADO.NET的ExecuteScalar方法返回单一值-资讯动态

    [转]http://www.bitscn.com/pdb/dotnet/200807/147205.html 若您程序中执行的 SQL statement 或 Stored Procedure,只是要 ...

  4. java方法带参数返回值_Java方法中的参数太多,第6部分:方法返回

    java方法带参数返回值 在当前的系列文章中,我正在致力于减少调用Java方法和构造函数所需的参数数量,到目前为止,我一直专注于直接影响参数本身的方法( 自定义类型 , 参数对象 , 构建器模式 , ...

  5. java 返回布尔值_如何使用Java方法返回的布尔值?

    我有一个方法,发送一堆字符到另一个方法,如果某些字符存在,将返回true或false.一旦这个方法评估所有的字符,并为每个字符返回true或false,我如何在另一个方法中使用这些true或false ...

  6. Java方法中的参数太多,第6部分:方法返回

    在当前的系列文章中,我正在致力于减少调用Java方法和构造函数所需的参数数量,到目前为止,我一直专注于直接影响参数本身的方法( 自定义类型 , 参数对象 , 构建器模式 , 方法重载和方法命名 ). ...

  7. C# 数据库SqlServer基础增删改查(返回单个值)

    本文主要介绍C#结合SQLServer数据库,如何完成最基础的增删改查,其中的查只返回第一行第一列的单个值. 目录 一.环境介绍 二.代码 (一)向数据库中增加一条数据 (二)删除数据库中一条数据 ( ...

  8. SpringMVC入门(二)—— 参数的传递、Controller方法返回值、json数据交互、异常处理、图片上传、拦截器

    SpringMVC入门(二)-- 参数的传递.Controller方法返回值.json数据交互.异常处理.图片上传.拦截器 参考文章: (1)SpringMVC入门(二)-- 参数的传递.Contro ...

  9. 记:返回方法参数的值(或多个值),

    直接贴示例代码: static void Main(string[] args) {int cs;int s= outfanhui(90, out cs); Console.WriteLine(&qu ...

最新文章

  1. phpstorm安装_PHPstorm设置浏览器打开代码
  2. Python读CSV数据
  3. Android WebView 和 javaScript的互相调用(一)
  4. 1.1 计算机的发展
  5. 解决方案仅用于执行startup.bat启动时乱码解决
  6. vooc充电原理_Reno3系列最快56分钟充满,VOOC闪充技术再次行业领先
  7. nagios学习笔记(二)
  8. 二维数组常用的赋值方式
  9. Swift中文教程(五)控制流
  10. Python新手学习基础之条件语句——elif语句
  11. xlinx ISE的程序下载
  12. 968. 监控二叉树(每日一难phase2--day17)
  13. 遗传算法matlab_通俗易懂地解释遗传算法
  14. 想开发一个在线的合同模板管理套件
  15. 车牌识别ocr为何物—科技普及大讲堂1
  16. Softing过程自动化解决方案——助力数字化工业
  17. DELL R730xd 安装PCIE SSD 后风扇转速增高的解决方案
  18. shamir秘密共享matlab程序,shamir 秘密共享代码
  19. python爬虫如何防止IP屏蔽
  20. 绘画新手怎么学习绘画?怎么让自己的绘画作品看起来舒服?

热门文章

  1. 【虾皮选品分享】马来西亚/菲律宾市场时尚美妆热销趋势
  2. Android9.0版本Vold服务源码分析
  3. HTTPS证书过期|SSL证书过期 |华硕路由器| NAS|Certtificate is not valid
  4. jQuery append( ) 方法
  5. Servlet+JSP项目
  6. error LNK2005解决方法
  7. Vue项目的打包\部署\优化
  8. Matlab快速创建矩阵的方法(创建特殊矩阵)
  9. 石头扫地机器人遇见地毯_当戴森V8遇上石头扫地机器人,彻底拯救懒癌患者
  10. 矩阵/向量/标量间相互求导