java用executebatch批量执行merge语句,如果知道成功更新了多少记录? 20

executebatch的范围值全是-2,查了下这表示执行成功但是不知道更新了多少条记录,用getupdatecount()都是-1也取不到,是不是就没办法知道了?... executebatch的范围值全是-2,查了下这表示执行成功但是不知道更新了多少条记录,用getupdatecount()都是-1也取不到,是不是就没办法知道了? 展开
 我来答
匿名用户
2015-03-09
展开全部
int[] executeBatch() throws SQLException

将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。返回数组的 int 元素的排序对应于批中的命令,批中的命令根据被添加到批中的顺序排序。方法 executeBatch 返回的数组中的元素可能为以下元素之一:
大于等于 0 的数 - 指示成功处理了命令,是给出执行命令所影响数据库中行数的更新计数
SUCCESS_NO_INFO 的值 - 指示成功执行了命令,但受影响的行数是未知的
如果批量更新中的命令之一无法正确执行,则此方法抛出 BatchUpdateException,并且 JDBC 驱动程序可能继续处理批处理中的剩余命令,也可能不执行。无论如何,驱动程序的行为必须与特定的 DBMS 一致,要么始终继续处理命令,要么永远不继续处理命令。如果驱动程序在某一次失败后继续进行处理,则 BatchUpdateException.getUpdateCounts 方法返回的数组将包含的元素与批中存在的命令一样多,并且其中至少有一个元素将为:

EXECUTE_FAILED 的值 - 指示未能成功执行命令,仅当命令失败后驱动程序继续处理命令时出现

在 Java 2 SDK, Standard Edition, 1.3 版中已经修改了可能的实现和返回值,以适应抛出 BatchUpdateException 对象后在批量更新中继续处理命令的选项


返回:
包含批中每个命令的一个元素的更新计数所组成的数组。数组的元素根据将命令添加到批中的顺序排序。
_Void
推荐于2018-05-18
知道答主
回答量:1
采纳率:0%
帮助的人:909
展开全部
你这个也是麻烦,merge执行起来还得判断是插入还是更新,你现在是只要知道更新的条数是吧。。。如果只是为了debug的话看下执行前后数据库多了多少条记录,就能算出更新的条数了。我记得好像是没有api把两者区分出来的,等大神回答吧QAQ
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhuangchuan123
2016-01-15
知道答主
回答量:5
采纳率:0%
帮助的人:5731
展开全部
executeBatch()会返回一个int[] int[0]代表第一条sql语句执行后影响的行数,也就是"更新了多少条记录"。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式