4

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

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

如果可能,我想获得特定的错误消息,这样我可以抛出一个特定的异常来说明查询失败的原因。

谢谢你的帮助。

4

2 回答 2

10

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

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

当然,您可以通过简单地查看 JavaDocs来发现自己:

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

于 2012-11-17T21:05:30.720 回答
2

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

PreparedStatement pstmt = con.prepareStatement("UPDATE TABLE ...");
int rowsUpdated = pstmt.executeUpdate(); 
if (rowsUpdated == 0) {
   // handle no update
}
于 2012-11-17T21:05:35.487 回答