@MOWS

Закрывать ли Statement and Resultset в Connection Pool в java?

Для connection pool использую HikariCP.
По идее если я закрывают конекшен, то он закрывает все Statement открытые. Нужно ли из закрывать Statement and Resultset? Просто везде советуют их закрывать, но зачем нагромождать код?
public ConnectionPool(String url, TypeDriver type) throws SQLException {
		HikariConfig hc = new HikariConfig();
		hc.setDriverClassName(Tools.getDriver(type));
		hc.setConnectionTestQuery("SELECT 1");
		hc.setMaximumPoolSize(20);
		hc.setJdbcUrl(url);
		dataSource = new HikariDataSource(hc);

		Connection connection = dataSource.getConnection();
		try {
			Statement statement = connection.createStatement();
			ResultSet resultSet = statement.executeQuery("insert ...");
		} finally {
			//TODO закрывать ли Statement и ResultSet??
			connection.close();
		}
	}
  • Вопрос задан
  • 1162 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Azargan
Не сильно и захламляет.

public ConnectionPool(String url, TypeDriver type) throws SQLException {
    HikariConfig hc = new HikariConfig();
    hc.setDriverClassName(Tools.getDriver(type));
    hc.setConnectionTestQuery("SELECT 1");
    hc.setMaximumPoolSize(20);
    hc.setJdbcUrl(url);
    dataSource = new HikariDataSource(hc);

    try (Connection connection = dataSource.getConnection();
          Statement statement = connection.createStatement();
          ResultSet resultSet = statement.executeQuery("insert ...")) {
      
    } catch (Exception e) {
        log.error(e);
    }
  }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы