【发布时间】:2021-08-03 07:49:50
【问题描述】:
我正在使用 Java 7 开发一个使用 Angular 和 Spring 的应用程序,但是,我被要求使用 SonarQube 扫描我的代码,所以这个工具告诉我,我需要尝试使用资源来关闭我的 Prepared声明和结果集,所以我做了一些研究,我是这样实现的:
try (Connection connection = DriverManager.getConnection(connectionUrl);
Statement statement = connection.createStatement();
PreparedStatement sentence = connection.prepareStatement(selectSql);
ResultSet resultSet = sentence.executeQuery();) {
// Create and execute a SELECT SQL statement.
sentence.setString(1, parametro);
logger.info(resultSet + " resultSet!----------------------------------------");
// Print results from select statement
while (resultSet.next()) {
logger.info(" Entro al While!----------------------------------------");
euroList.add(new EuroModel(resultSet.getInt("ID"), resultSet.getString("RFC"),
resultSet.getString("NOM")));
logger.info("recibiendo result-> " + resultSet.getString(2) + " " + resultSet.getString(3));
logger.info(euroList.toString());
}
} catch (SQLException e) {
logger.info("No se pudo conectar");
logger.info("EuroService");
logger.info("INFO: " + e);
List<EuroModel> empty = null;
return empty;
}
但是,由于以下行位于错误的位置,我的代码无法正常工作,我不知道应该在哪里尝试使用资源:
sentence.setString(1, parametro);
有人可以帮帮我吗?
【问题讨论】:
标签: java sql-server spring sonarqube try-catch