Задать вопрос
@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();
		}
	}
  • Вопрос задан
  • 1201 просмотр
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 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);
    }
  }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы