Connection

Базовый Java
≈ 2 мин чтения

Connection — это активный контекст работы с базой

Connection представляет соединение приложения с конкретной базой данных. Через него создаются SQL-команды, настраиваются транзакции и запрашивается информация о соединении. Почти вся дальнейшая работа JDBC начинается именно с этого объекта.

try (Connection connection = DriverManager.getConnection(url, user, password)) {
    System.out.println(connection.getAutoCommit());
}

Соединение является ресурсом, поэтому его нужно закрывать после использования. Знакомый try-with-resources делает это автоматически и особенно хорошо подходит для небольших JDBC-примеров. В серверных приложениях соединение часто приходит из пула, но правило остаётся тем же: полученный ресурс нужно вовремя вернуть владельцу.

Через Connection создаются команды

Сам Connection обычно не содержит SQL, который нужно выполнить. Он создаёт объекты для конкретных команд — чаще всего PreparedStatement.

try (PreparedStatement statement = connection.prepareStatement(
        "UPDATE users SET active = ? WHERE id = ?")) {
    statement.setBoolean(1, true);
    statement.setLong(2, 42);
    statement.executeUpdate();
}

Состояние соединения влияет на следующие операции

У Connection есть настройки, которые меняют поведение выполняемых через него команд: например, режим auto-commit, уровень изоляции транзакций и read-only флаг. Поэтому соединение — не просто «провод до базы», а объект с состоянием.

Connection не стоит хранить как долгоживущий глобальный объект. Соединения ограничены и могут разрываться. Обычно код получает соединение на время конкретной работы, использует его и затем закрывает или возвращает в пул.