Hibernacja - konfiguracja
Hibernate wymaga wcześniejszej wiedzy - gdzie znaleźć informacje o mapowaniu, które definiują, w jaki sposób klasy Java odnoszą się do tabel bazy danych. Hibernacja wymaga również zestawu ustawień konfiguracyjnych związanych z bazą danych i innymi powiązanymi parametrami. Wszystkie takie informacje są zwykle dostarczane jako standardowy plik właściwości Java o nazwiehibernate.propertieslub jako plik XML o nazwie hibernate.cfg.xml.
Rozważę plik w formacie XML hibernate.cfg.xmlaby określić wymagane właściwości Hibernate w moich przykładach. Większość właściwości przyjmuje wartości domyślne i nie jest wymagane określanie ich w pliku właściwości, chyba że jest to naprawdę wymagane. Ten plik jest przechowywany w katalogu głównym ścieżki klas aplikacji.
Właściwości hibernacji
Poniżej znajduje się lista ważnych właściwości, które trzeba będzie skonfigurować dla baz danych w sytuacji autonomicznej -
Sr.No. | Właściwości i opis |
---|---|
1 | hibernate.dialect Ta właściwość sprawia, że Hibernate generuje odpowiedni kod SQL dla wybranej bazy danych. |
2 | hibernate.connection.driver_class Klasa sterownika JDBC. |
3 | hibernate.connection.url Adres URL JDBC do instancji bazy danych. |
4 | hibernate.connection.username Nazwa użytkownika bazy danych. |
5 | hibernate.connection.password Hasło bazy danych. |
6 | hibernate.connection.pool_size Ogranicza liczbę połączeń oczekujących w puli połączeń bazy danych Hibernate. |
7 | hibernate.connection.autocommit Umożliwia użycie trybu automatycznego zatwierdzania dla połączenia JDBC. |
Jeśli używasz bazy danych wraz z serwerem aplikacji i JNDI, musisz skonfigurować następujące właściwości -
Sr.No. | Właściwości i opis |
---|---|
1 | hibernate.connection.datasource Nazwa JNDI zdefiniowana w kontekście serwera aplikacji, którego używasz dla aplikacji. |
2 | hibernate.jndi.class Klasa InitialContext dla JNDI. |
3 | hibernate.jndi.<JNDIpropertyname> Przekazuje dowolną właściwość JNDI do obiektu JNDI InitialContext . |
4 | hibernate.jndi.url Zawiera adres URL dla JNDI. |
5 | hibernate.connection.username Nazwa użytkownika bazy danych. |
6 | hibernate.connection.password Hasło bazy danych. |
Hibernuj z bazą danych MySQL
MySQL to jeden z najpopularniejszych obecnie dostępnych systemów baz danych typu open source. Stwórzmyhibernate.cfg.xmlplik konfiguracyjny i umieść go w katalogu głównym ścieżki klas aplikacji. Będziesz musiał się upewnić, że masztestdb baza danych dostępna w Twojej bazie danych MySQL i masz użytkownika test dostęp do bazy danych.
Plik konfiguracyjny XML musi być zgodny z DTD konfiguracji Hibernate 3, który jest dostępny pod adresem 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>
Powyższy plik konfiguracyjny zawiera <mapping> tagi, które są powiązane z plikiem mapowania hibernacji, a zobaczymy w następnym rozdziale, czym dokładnie jest plik mapowania hibernacji oraz jak i dlaczego go używamy?
Poniżej znajduje się lista różnych ważnych typów właściwości dialektu baz danych -
Sr.No. | Właściwość bazy danych i dialektu |
---|---|
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 |