我正在使用JDBC与mysql。 我可以很好地运用查询。 但是,例如更新查询,我想知道是否有任何方法可以确定更新是否成功,例如如果找不到行。
UPDATE TABLE SET column = 'newvalue' WHERE primary_key =2
如果可能的话,我希望能够得到具体的错误信息,这样我就可以抛出特定的异常来说明查询失败的原因。
谢谢您的帮助。
executeUpdate()会返回受SQL语句影响的行数:
int rows = stmt.executeUpdate("UPDATE ...");
System.out.println(rows + " rows updated");
当然,你可以通过简单地查看JavaDocs自己找到答案:
返回值:对于SQL数据操作语言(DML)语句,返回行数;对于不返回任何内容的SQL语句,返回0。
executeUpdate 方法返回受影响的行数。您可以使用此方法检查更新是否成功执行:
PreparedStatement pstmt = con.prepareStatement("UPDATE TABLE ...");
int rowsUpdated = pstmt.executeUpdate();
if (rowsUpdated == 0) {
// handle no update
}
rowsUpdated
将为0
。 - Luke Woodward
where
条件匹配 - 这不被视为“失败”。这是UPDATE
语句的可接受结果。 - user330315