Гибернация - Конфигурация
Hibernate требует заранее знать, где найти информацию о сопоставлении, которая определяет, как ваши классы Java связаны с таблицами базы данных. Hibernate также требует набора параметров конфигурации, связанных с базой данных и другими связанными параметрами. Вся такая информация обычно предоставляется в виде стандартного файла свойств Java под названиемhibernate.propertiesили как XML-файл с именем hibernate.cfg.xml.
Я буду рассматривать файл в формате XML hibernate.cfg.xmlчтобы указать необходимые свойства Hibernate в моих примерах. Большинство свойств принимают значения по умолчанию, и указывать их в файле свойств не требуется, если это действительно не требуется. Этот файл хранится в корневом каталоге пути к классам вашего приложения.
Свойства гибернации
Ниже приведен список важных свойств, которые вам необходимо будет настроить для баз данных в автономной ситуации.
| Sr. No. | Свойства и описание |
|---|---|
| 1 | hibernate.dialect Это свойство заставляет Hibernate генерировать соответствующий SQL-код для выбранной базы данных. |
| 2 | hibernate.connection.driver_class Класс драйвера JDBC. |
| 3 | hibernate.connection.url URL-адрес JDBC для экземпляра базы данных. |
| 4 | hibernate.connection.username Имя пользователя базы данных. |
| 5 | hibernate.connection.password Пароль базы данных. |
| 6 | hibernate.connection.pool_size Ограничивает количество соединений, ожидающих в пуле соединений базы данных Hibernate. |
| 7 | hibernate.connection.autocommit Позволяет использовать режим автоматической фиксации для соединения JDBC. |
Если вы используете базу данных вместе с сервером приложений и JNDI, вам необходимо настроить следующие свойства:
| Sr. No. | Свойства и описание |
|---|---|
| 1 | hibernate.connection.datasource Имя JNDI, определенное в контексте сервера приложений, который вы используете для приложения. |
| 2 | hibernate.jndi.class Класс InitialContext для JNDI. |
| 3 | hibernate.jndi.<JNDIpropertyname> Передает любое свойство JNDI, которое вам нравится, в JNDI InitialContext . |
| 4 | hibernate.jndi.url Предоставляет URL-адрес для JNDI. |
| 5 | hibernate.connection.username Имя пользователя базы данных. |
| 6 | hibernate.connection.password Пароль базы данных. |
Гибернация с базой данных MySQL
MySQL - одна из самых популярных систем баз данных с открытым исходным кодом, доступных сегодня. Давайте создадимhibernate.cfg.xmlфайл конфигурации и поместите его в корень пути к классам вашего приложения. Вам нужно будет убедиться, что у вас естьtestdb база данных доступна в вашей базе данных MySQL, и у вас есть пользователь test доступен для доступа к базе данных.
Файл конфигурации XML должен соответствовать DTD конфигурации Hibernate 3, доступной по адресу http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd.
<?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/test
</property>
<property name = "hibernate.connection.username">
root
</property>
<property name = "hibernate.connection.password">
root123
</property>
<!-- List of XML mapping files -->
<mapping resource = "Employee.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Приведенный выше файл конфигурации включает <mapping> теги, которые связаны с файлом hibernatemapping, и в следующей главе мы увидим, что такое файл сопоставления hibernate и как и почему мы его используем?
Ниже приведен список различных важных типов свойств диалекта баз данных.
| Sr. No. | Свойство базы данных и диалекта |
|---|---|
| 1 | DB2 org.hibernate.dialect.DB2Dialect |
| 2 | HSQLDB org.hibernate.dialect.HSQLDialect |
| 3 | HypersonicSQL org.hibernate.dialect.HSQLDialect |
| 4 | Informix org.hibernate.dialect.InformixDialect |
| 5 | Ingres org.hibernate.dialect.IngresDialect |
| 6 | Interbase org.hibernate.dialect.InterbaseDialect |
| 7 | Microsoft SQL Server 2000 org.hibernate.dialect.SQLServerDialect |
| 8 | Microsoft SQL Server 2005 org.hibernate.dialect.SQLServer2005Dialect |
| 9 | Microsoft SQL Server 2008 org.hibernate.dialect.SQLServer2008Dialect |
| 10 | MySQL org.hibernate.dialect.MySQLDialect |
| 11 | Oracle (any version) org.hibernate.dialect.OracleDialect |
| 12 | Oracle 11g org.hibernate.dialect.Oracle10gDialect |
| 13 | Oracle 10g org.hibernate.dialect.Oracle10gDialect |
| 14 | Oracle 9i org.hibernate.dialect.Oracle9iDialect |
| 15 | PostgreSQL org.hibernate.dialect.PostgreSQLDialect |
| 16 | Progress org.hibernate.dialect.ProgressDialect |
| 17 | SAP DB org.hibernate.dialect.SAPDBDialect |
| 18 | Sybase org.hibernate.dialect.SybaseDialect |
| 19 | Sybase Anywhere org.hibernate.dialect.SybaseAnywhereDialect |