Как в Java организована работа с базами данных через JDBC?

«Как в Java организована работа с базами данных через JDBC?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

JDBC (Java Database Connectivity) — это стандартный Java API для подключения к реляционным базам данных и выполнения SQL-запросов. Работа строится по следующей схеме:

  1. Загрузка драйвера БД: JVM загружает класс драйвера конкретной СУБД (например, MySQL, PostgreSQL).
    Class.forName("com.mysql.cj.jdbc.Driver"); // Для современных версий часто не требуется явно
  2. Установка соединения: Создание Connection с использованием URL, логина и пароля.
    String url = "jdbc:mysql://localhost:3306/mydb";
    Connection conn = DriverManager.getConnection(url, "user", "password");
  3. Создание и выполнение запроса: Использование Statement, PreparedStatement (рекомендуется) или CallableStatement.
    String sql = "SELECT * FROM users WHERE id = ?";
    PreparedStatement stmt = conn.prepareStatement(sql);
    stmt.setInt(1, 123);
    ResultSet rs = stmt.executeQuery();
  4. Обработка результатов: Итерация по ResultSet.
    while (rs.next()) {
        String name = rs.getString("name");
        System.out.println(name);
    }
  5. Закрытие ресурсов: Важно закрывать ResultSet, Statement и Connection (обычно в блоке try-with-resources).

Почему PreparedStatement лучше Statement:

  • Безопасность: Защита от SQL-инъекций за счет параметризации.
  • Производительность: Предкомпиляция запроса и возможность кеширования плана выполнения.