oracle的PremaredStatement.executeBatch为什么返回-2

PremaredStatement.executeBatch的方法在底层调用了一个void的executeForRows的方法来执行,他们很懒,为了复用这个方法,于是就失去了返回值,也就无法知道当前执行的语句到底返回了什么。

但是jdbc2.0规范规定,如果执行成功但无法知道结果,则返回-2.所以oracle的PremaredStatement.executeBatch把每条语句的返回设为-2.一般在编程中这个返回值可以判断执行成功。但无法知道确切的影响到的行数。

 

posted @ 2013-05-20 21:19  javawebsoa  Views(1286)  Comments(0Edit  收藏  举报