这是关于使用JDBC的sql update语句。实际上我正在研究我们遇到的一些问题,在尝试更新某一行时,更新语句返回零点的所有问题都会挂起。
现在要说清楚,特定的行更新声明正在尝试更新表格中存在的内容。因此没有找到记录的可能性,因此无法更新。
提到这一点后,我的问题是,您是否看到或是他们的任何其他可能性,更新可以返回零。我正在使用oracle jdbc驱动程序。所以oracle jdbc提到任何可能由update语句返回零而不是找不到记录的情况。
非常感谢, Ameer Mawia
答案 0 :(得分:0)
的executeUpdate
int executeUpdate() 抛出SQLException
在此PreparedStatement对象中执行SQL语句,该对象必须是SQL数据操作语言(DML)语句,例如INSERT,UPDATE或DELETE;或者什么都不返回的SQL语句,例如DDL语句。
返回: (1)SQL数据操作语言(DML)语句的行数或(2)0表示不返回任何内容的SQL语句 抛出: SQLException - 如果发生数据库访问错误;在关闭的PreparedStatement上调用此方法,或者SQL语句返回ResultSet对象
只是说文档指定:
“请注意,当executeUpdate的返回值为0时,它可能意味着以下两种情况之一:
执行的语句是一个影响零行的更新语句。 执行的声明是DDL声明。“
答案 1 :(得分:0)
抱歉,我还不知道如何发表评论,所以......
来自Oracle:
http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html
请注意,当executeUpdate的返回值为0时,它可能意味着以下两种情况之一:
* The statement executed was an update statement that affected zero rows.
* The statement executed was a DDL statement.
因此看起来Update语句可能会以某种你没想到的方式受到破坏。考虑到没有抛出异常,我认为就是这种情况。如果这是可重复的,您应该能够监视在服务器端发送的SQL并查看遗漏的内容。