我正在使用JDBC和mysql。我可以让我的查询工作得很好。 但是对于更新查询,例如我想知道是否有任何方法可以确定更新是否成功,例如,如果找不到该行。
UPDATE TABLE SET column = 'newvalue' WHERE primary_key =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
}