我有以下代码:
try (Connection connection = getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(someSql)) {//stuff}
如何在这里检查连接不为空?
另外,我得到了一个返回 PreparedStatement 的方法,如下所示:
private PreparedStatement getPreparedStatement(Connection connection)
throws SQLException {
PreparedStatement preparedStatement = connection.prepareStatement(SQL);
preparedStatement.setString(1, "someString");
return preparedStatement;
}
这在使用以下资源尝试的方法中调用:
try (Connection connection = getConnection();
PreparedStatement preparedStatement =
getPreparedStatement(connection)) {//stuff}
现在我假设准备好的语句将被自动关闭,因为它是在资源尝试中启动的。但是 SonarCloud 说我应该在 getPreparedStatement 方法中对资源使用 try 或在 finally 块中关闭 PreparedStatement。这是 SonarCloud 的错误发现还是有更好的方法呢?