Основы JDBC

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

Как выглядит работа через JDBC

JDBC не является отдельной базой данных и не придумывает собственный язык запросов. Java-приложение по-прежнему отправляет обычный SQL, а JDBC даёт стандартные интерфейсы, через которые код открывает соединение, выполняет команду и получает результат.

Между приложением и конкретной СУБД находится JDBC-драйвер. Он реализует JDBC-интерфейсы и знает, как общаться именно с PostgreSQL, MySQL, Oracle Database или другой поддерживаемой системой.

Минимальный путь запроса

String url = "jdbc:postgresql://localhost:5432/app";

try (Connection connection = DriverManager.getConnection(url, "app", "secret");
     PreparedStatement statement = connection.prepareStatement(
             "SELECT name FROM users WHERE id = ?")) {

    statement.setLong(1, 42);

    try (ResultSet result = statement.executeQuery()) {
        if (result.next()) {
            System.out.println(result.getString("name"));
        }
    }
}

Здесь видна вся цепочка JDBC. DriverManager помогает получить соединение, Connection представляет работу с базой, PreparedStatement хранит SQL с параметром, а ResultSet даёт прочитать строки результата. Каждый из этих объектов дальше разберём отдельно.

Драйвер должен быть доступен приложению

Для реальной базы в зависимостях проекта должен присутствовать подходящий JDBC-драйвер. Современные драйверы обнаруживаются автоматически, поэтому обычному приложению, как правило, не нужно вручную вызывать Class.forName() только ради регистрации драйвера.

JDBC — это низкоуровневый доступ к базе. Здесь приложение само пишет SQL и явно работает с соединениями и результатами. Позже поверх этих идей можно использовать более высокоуровневые инструменты, но понимание JDBC помогает видеть, что происходит под ними.