Для корректной работы, мы должны передать Hibernate подробную информацию, которая связывает наши Java-классы c таблицами в базе данных (далее – БД). Мы, также, должны укзать значения определённых свойств Hibernate.
обычно, вся эта информация помещена в отдельный файл, либо XML-файл – hibernate.cfg.xml, либо – hibernate.properties.
В этой статье мы рассмотрим конфигурирование приложение с помощью XML-файла hibernate.cfg.xml.
Для начала рассмотрим ключевые свойства, которые должны быть настроены в типичном приложении:
hibernate.dialect
Указывает HIebrnate диалект БД. Hibernate, в своб очередь, генерирует необходимые SQL-запросы (например, org.hibernate.dialect.MySQLDialect, если мы используем MySQL).
hibernate.connection-driver_class
Указывает класс JDBC драйвера.
hibernate.connection.url
Указывает URL (ссылку) необходимой нам БД (например, jdbc:mysql://localhost:3306/database).
hibernate.connection.username
Указывает имя пользователя БД (например, root).
hibernate.connection.password
Укащывает пароль к БД (например, password).
hibernate.connection.pool_size
Ограничивает количество соединений, которые находятся в пуле соединений Hibernate.
hibernate.connection.autocommit
Указывает режим autocommit для JDBC-соединения.
Давайте рассмотрим пример конфигурационного XML-файла.
Исходные данные:
Тип БД: MySQL
Имя базы данных: database
Имя пользователя: root
Пароль: password
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="hibernate.connection.driver_class">
com.mysql.jdbc.Driver
</property>
<!-- Assume test is the database name -->
<property name="hibernate.connection.url">
jdbc:mysql://localhost/database
</property>
<property name="hibernate.connection.username">
root
</property>
<property name="hibernate.connection.password">
password
</property>
</session-factory>
</hibernate-configuration>