У меня есть следующий код:
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 говорит, что я должен использовать try с ресурсами в методе getPreparedStatement или закрыть этот PreparedStatement в блоке finally. Является ли это неправильным выводом SonarCloud или есть лучший способ сделать это?