Что такое JDBC в Java?

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

Ответ

JDBC (Java Database Connectivity) — это стандартный Java API (набор интерфейсов и классов в пакете java.sql и javax.sql) для подключения и выполнения операций с реляционными базами данных.

Он предоставляет универсальный интерфейс, позволяющий Java-приложениям взаимодействовать с различными СУБД (MySQL, PostgreSQL, Oracle и др.) через специфичные для каждой БД драйверы.

Ключевые компоненты JDBC:

  • DriverManager / DataSource: Управляет подключениями к БД.
  • Connection: Представляет активное соединение с базой данных.
  • Statement, PreparedStatement, CallableStatement: Интерфейсы для выполнения SQL-запросов.
  • ResultSet: Объект, содержащий результаты выполнения запроса SELECT.

Пример выполнения запроса с использованием PreparedStatement (защита от SQL-инъекций):

String url = "jdbc:mysql://localhost:3306/mydb";
String user = "root";
String password = "pass";

// try-with-resources автоматически закрывает ресурсы
String sql = "SELECT id, name FROM users WHERE email = ?";
try (Connection conn = DriverManager.getConnection(url, user, password);
     PreparedStatement stmt = conn.prepareStatement(sql)) {

    stmt.setString(1, "user@example.com"); // Установка параметра
    try (ResultSet rs = stmt.executeQuery()) {
        while (rs.next()) {
            int id = rs.getInt("id");
            String name = rs.getString("name");
            System.out.println(id + ": " + name);
        }
    }
} catch (SQLException e) {
    e.printStackTrace();
}

Важные аспекты: JDBC — низкоуровневый API. Для упрощения работы часто используются надстройки: пулы соединений (HikariCP), шаблоны (JdbcTemplate в Spring) или ORM-фреймворки (Hibernate).