当前位置: 首页 > 面试题库 >

ExecuteBatch方法在Java中返回值-2的数组

通沛
2023-03-14
问题内容

当我在Java中执行executeBatch方法时,它会返回一个正常的int数组,但该值是所有数组元素的-2,

它应该是0或+ ve数字,以显示受影响的行数,但返回-2,

当我在数据库中检查它时,所有更新均成功完成。请说明此-2是什么意思,以及如何找到受影响的行数。

谢谢,Deepesh Uniyal


问题答案:

关于批处理更新的返回码,html" target="_blank">jdbc-spec有以下说法:

■0或更大-命令已成功处理,值是一个更新计数,指示受命令执行影响的数据库中的行数第14章批更新121

■Statement.SUCCESS_NO_INFO-命令已成功处理,但受影响的行数未知

Statement.SUCCESS_NO_INFO被定义为-2,因此您的结果表明一切正常,但是您将无法获得有关更新列数的信息。

oracle文档说明:

•对于准备好的语句批处理,不可能知道该批处理中每个单独的语句在数据库中影响的行数。因此,所有数组元素的值都为-2。根据JDBC
2.0规范,值-2表示操作成功,但是受影响的行数未知。

•对于泛型语句批处理,该数组包含实际更新计数,这些计数指示受每个操作影响的行数。只有在标准批处理的Oracle实现中具有通用语句的情况下,才能提供实际的更新计数。

•对于可调用语句批处理,服务器始终返回值1作为更新计数,而不管受每个操作影响的行数。

这样看来,如果您需要更新计数,则不能使用PreparedStatements,而必须退回到纯Statements。



 类似资料:
  • 问题内容: 我试图从Java方法返回2个值,但出现这些错误。这是我的代码: 错误: Java结果:1 问题答案: 不要返回包含两个值的数组或使用泛型Pair类,而应考虑创建一个代表要返回的结果的类,然后返回该类的实例。给班级起一个有意义的名字。与使用数组相比,此方法的好处是类型安全,这将使你的程序更易于理解。 注意:通用类,如此处其他一些答案中所建议,也可以为你提供类型安全性,但不会传达结果表示的

  • 问题内容: 根据java doc,方法无法返回值。但是,我确实想知道是否有任何解决方法。 其实我有一个方法,它调用: wheren方法是: 我想访问变量是否可行? 问题答案: 使用而不是使用界面。 例: 在此示例中,您还将需要实现WordLengthCallable类,该类实现Callable接口。

  • 问题内容: 我有一类这样的方法: 我如何在另一个类中调用此方法? 问题答案: 1. 如果要从中调用该方法的类位于同一包中,则创建该类的实例并调用该方法。 2. 使用 3. 最好有个赞等等。 例如:

  • 问题内容: 我有一个运行某些逻辑的Java方面。我需要它返回一个结果(一个对象),该结果可以在方面的切入点截取的方法中使用。可能吗? 问题答案: 您需要的是可以让您将想要的任何东西返回给建议对象的方法:

  • 问题内容: 我想将方法​​返回的数组存储到另一个数组中。我怎样才能做到这一点? 当我调用此方法时,如何将返回的数组(z)存储到另一个数组中? 问题答案: 上面的方法不返回数组本身,而是返回对该数组的引用。在调用函数中,您可以在另一个引用中收集此返回值,例如: 此后还将引用之前引用的同一数组。 如果这不是您想要的,并且要创建阵列的副本,则可以使用创建副本。

  • 我相信这是一个愚蠢的问题,但我已经讨论了很久了。。我试图创建一个java程序,根据用户输入的年数和金额计算复利。但我一直遇到一个错误,void方法无法返回值。因此,我将方法切换为double,因为这是将返回的内容,但它告诉我double方法必须返回double。即使我在循环中返回一个双倍。。。请帮忙