我在 Eclipse 中活动它显示可能的数据库连接泄漏。
我有这段代码:
public static Administrator getAdministrator(String gebruikersnaam, String wachtwoord) throws CustomException {
Connection connectie = null;
PreparedStatement prepStmt = null;
ResultSet result = null;
try {
connectie = ConnectionPool.getInstance().getConnection(true, true);
prepStmt = connectie.prepareStatement(QUERY_GET_ADMINISTRATOR);
prepStmt.setString(1, gebruikersnaam);
prepStmt.setString(2, wachtwoord);
result = prepStmt.executeQuery();
if (result.next()) {
Administrator admin = new Administrator(result.getString(1), result.getString(2), result.getString(3));
return admin;
} else {
return null;
}
} catch (SQLException e) {
throw new CustomException("Fout opgetreden bij het opvragen van een administrator uit de databank (" + e.getMessage() + ").");
} finally {
close(result);
close(prepStmt);
close(connectie);
}
}
Eclipse 在返回的行和我抛出 CustomException 的行警告说 ResultSet 结果未关闭可能存在资源泄漏。但是,我已经在 finally 子句中关闭了 ResultSet、PreparedStatement 和 Connection 对象。这是正确编写的还是有更好、更简洁的编码方式?
这是警告的屏幕截图: