Ответ
JDBC (Java Database Connectivity) — это стандартный API, а не реализация. Чтобы приложение могло работать с конкретной СУБД (MySQL, PostgreSQL и т.д.), ему нужна реализация этого API — драйвер. Драйвер регистрируется в DriverManager и выполняет всю низкоуровневую работу.
Что делает драйвер в контексте JDBC:
- Регистрация: Сообщает
DriverManager, что доступно соединение с определенным типом БД (по URL, например,jdbc:mysql://). - Создание соединения: При вызове
DriverManager.getConnection()подходящий драйвер устанавливает физическое сетевое соединение. - Адаптация: Преобразует стандартные JDBC-интерфейсы (
Connection,PreparedStatement) в специфичные для СУБД команды и протоколы.
Современный подход (JDBC 4.0+):
Драйверы, соответствующие спецификации JDBC 4.0 и выше, регистрируются автоматически через механизм SPI (Service Provider Interface). Достаточно добавить JAR-файл драйвера в classpath (например, через Maven/Gradle зависимость). Явный вызов Class.forName() больше не требуется.