Вопрос с собеседования · Базы данных

Что такое JDBC?

JuniorJDBC
Ещё спрашивают так:
  • Как Java подключается к базе данных?
Коротко

JDBC — стандартный API Java для работы с реляционными базами: Connection, PreparedStatement, ResultSet. Реализацию для конкретной СУБД поставляет драйвер.

  • Код пишется против интерфейсов, база меняется сменой драйвера и URL
  • DataSource и пул соединений вместо DriverManager
  • ORM (Hibernate) и Spring JdbcTemplate работают поверх JDBC

А ещё JDBC блокирующий; для реактивного стека — R2DBC

Подробно

Разделение на API и драйвер позволяет писать код против одного набора интерфейсов — соединение, запрос, результат — и менять базу, меняя драйвер и диалект SQL. JDBC работает на уровне SQL: вы сами пишете запросы и разбираете результат. ORM вроде Hibernate не заменяет его, а надстраивается сверху, генерируя те же вызовы.

Что хотят услышать

  • Что такое JDBC и роль драйвера.
  • Основные интерфейсы.
  • Связь с ORM и пулом.

Частые ошибки

  • Путать JDBC с ORM.
  • Считать, что смена драйвера делает SQL полностью переносимым.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Протокол передачи данных между базами
  • ✗Формат хранения таблиц на диске
  • ✓Стандартный Java API к реляционным БД; конкретную СУБД обслуживает драйвер
  • ✗Библиотека объектно-реляционного отображения, генерирующая SQL

Что спросят дальше

  • Чем PreparedStatement безопаснее обычного Statement?
  • Почему соединения берут из пула?

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования