Ответ
Hibernate работает с базами данных через стандартный JDBC (Java Database Connectivity). Он не управляет драйверами напрямую, а использует их как поставщика соединений.
Ключевые компоненты:
- JDBC Driver: Драйвер для конкретной СУБД (MySQL, PostgreSQL, Oracle) должен быть добавлен в classpath как зависимость.
- Connection Pool: Hibernate делегирует управление соединениями пулу (например, HikariCP, C3P0). Пул настраивается в конфигурации.
- SQL Dialect: Hibernate использует диалект для генерации SQL, специфичного для СУБД.
Пример конфигурации hibernate.cfg.xml для PostgreSQL:
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/mydb</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<!-- Настройка пула соединений HikariCP -->
<property name="hibernate.connection.provider_class">org.hibernate.hikaricp.internal.HikariCPConnectionProvider</property>
Почему так: Это разделение ответственности позволяет Hibernate быть независимым от конкретной реализации БД, используя стандартный JDAPI.