JDBC:查明查询是否成功?

时间:2012-11-17 20:58:57

标签: java mysql jdbc

我正在使用JDBC和mysql。我可以让我的查询工作得很好。 但是对于更新查询,例如我想知道是否有任何方法可以确定更新是否成功,例如,如果找不到该行。

UPDATE TABLE SET  column =  'newvalue' WHERE  primary_key =2

我想在可能的情况下获取特定的错误消息,这样我就可以抛出一个特定的异常,说明查询失败的原因。

感谢您的帮助。

2 个答案:

答案 0 :(得分:10)

executeUpdate()将返回受SQL语句影响的行数:

int rows = stmt.executeUpdate("UPDATE ...");
System.out.println(rows + " rows updated");

当然,您可以通过looking at the JavaDocs

找到自己
  

返回:(1)SQL数据操作语言(DML)语句的行计数或(2)0表示不返回任何内容的SQL语句

答案 1 :(得分:2)

executeUpdate返回受影响行的行数。您可以使用它来检查您的更新是否已成功执行:

PreparedStatement pstmt = con.prepareStatement("UPDATE TABLE ...");
int rowsUpdated = pstmt.executeUpdate(); 
if (rowsUpdated == 0) {
   // handle no update
}