Почему интерфейс PreparedStatement в JDBC так называется?

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

Ответ

Название PreparedStatement отражает его ключевую особенность: SQL-запрос подготавливается (prepared) заранее, до выполнения с конкретными данными.

Принцип работы:

  1. Запрос с параметрами-заполнителями (?) отправляется в СУБД.
  2. СУБД компилирует и оптимизирует план выполнения запроса (парсинг, проверка синтаксиса, построение плана).
  3. Подготовленный запрос может выполняться многократно с разными значениями параметров.

Ключевые преимущества:

  • Безопасность: Автоматическое экранирование параметров предотвращает SQL-инъекции.
  • Производительность: Исключаются многократные компиляции одного и того же запроса.
  • Читаемость: Четкое разделение структуры запроса и данных.

Пример использования в Java:

String sql = "SELECT name, email FROM users WHERE age > ? AND status = ?";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setInt(1, 18); // Установка первого параметра
stmt.setString(2, "active"); // Установка второго параметра
ResultSet rs = stmt.executeQuery();