Задать вопрос
@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();
		}
	}
  • Вопрос задан
  • 1235 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Java-разработчик с нуля
    12 месяцев
    Далее
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • ProductStar
    Профессия: Java-разработчик
    9 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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);
    }
  }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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