背景故事:
我观察到 Sybase JDBC 驱动程序 (jconn3) 正在吃异常Statement.ExecuteUpdate(sql).
SQL 语句是一个插入语句,它将一行插入到表中(这不是临时表),但Statement.ExecuteUpdate(sql)
由于未知原因仍然返回 0。这个问题是随机的,似乎不会每次都发生。
Statement.ExecuteUpdate(sql)
如果没有更新任何行,我的理解是返回 0。但是就像插入语句的情况一样,我不确定如果没有插入任何内容,为什么不抛出异常。
由于代码是遗留代码(正在使用 JDK 1.4)并且由于某些限制,我无法更改或更新 JDBC 驱动程序。
可能性:
如果Driver在Statement,PreparedStatement和CallableStatement方面具有不同的ExecuteUpdate内部实现,我会从一个角度考虑,那么我可以建议将Statement更改为CallableStatement以调用ExecuteUpdate。
我很想知道 Sybase JDBC 驱动程序中的 Statement、PreparedStatement 和 CallableStatement 的 ExecuteUpdate 实现是否可能不同。