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

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект