在使用 JDBC 访问数据库时,验证 SQL 语句是否已成功执行至关重要。有几种 可以实现这种验证。
使用布尔返回值
某些 JDBC ,例如 executeUpdate()
和 execute()
,返回一个布尔值。如果查询或更新成功,则该值将为 true
;否则为 false
。
try {
int rowsAffected = statement.executeUpdate("UPDATE users SET name='New Name' WHERE id=1");
if (rowsAffected > 0) {
System.out.println("Update successful.");
}
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
检查影响的行数
executeUpdate()
和 execute()
还返回受影响的行数。如果查询或更新未影响任何行,则该值将为 0。您可以使用此值来验证操作是否成功。
try {
int rowsAffected = statement.executeUpdate("DELETE FROM users WHERE name='Old Name'");
if (rowsAffected > 0) {
System.out.println("Delete successful.");
} else {
System.out.println("No rows deleted.");
}
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
使用 SQLException
如果 JDBC 操作失败,它将抛出 SQLException
。通过捕获和检查 SQLException
,您可以确定操作是否成功。
try {
statement.execute("SELECT * FROM users");
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
综合使用
为了提高验证的可靠性,可以综合使用上述 。例如,您可以使用布尔返回值来验证操作是否成功,然后检查影响的行数以确保操作如预期进行。
try {
int rowsAffected = statement.executeUpdate("INSERT INTO users (name, email) VALUES ('New User', 'newuser@example.com')");
if (rowsAffected > 0 && statement.execute()) {
System.out.println("Insertion successful.");
} else {
System.out.println("Insertion failed.");
}
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
通过遵循这些技术,您可以有效地验证 JDBC 应用程序中 SQL 语句的执行。