05 Konfiguracja Hibernate(1)id 5724 ppt

background image

Konfiguracja Hibernate

Rafał Kasprzyk

background image

Rafał Kasprzyk

Konfiguracja Hibernate

Na poziomie aplikacji za odwzorowanie obiektów

trwałych na tabele w relacyjnej bazie danych

odpowiada obiekt klasy

org.hibernate.cfg.Configuration

Parametry konfiguracyjne są ustawiane programowo

poprzez obiekt Configuration lub definiowane w

tekstowym pliku hibernate.properties

Odwzorowania klas na tabele są definiowane w

plikach *.hbm.xml

Configuration cfg = new Configuration();
cfg.setProperty( ”hibernate.connection.url”,

”jdbc:hsqldb:.”);
cfg.setProperty(…);
cfg.addResource(User.hbm.xml);

Alternatywnym i najczęściej stosowanym sposobem

konfiguracji Hibernate jest wykorzystanie pliku w

formacie XML: hibernate.cfg.xml

background image

Rafał Kasprzyk

Plik hibernate.cfg.xml

Pozwala na pełną konfigurację Hibernate

Definiuje parametry konfiguracyjne

W przypadku istnienia pliku hibernate.properties

nadpisuje parametry w nim zdefiniowane

Wskazuje pliki z odwzorowaniami klas na

tabele

<hibernate-configuration>

<session-factory>

<!--properties-->

<property name="dialect">

org.hibernate.dialect.HSQLDialect</property>

<property

name="connection.url">jdbc:hsqldb:.</propery>

<--mapping files-->

<mapping

resource="pl/isolution/hibernate/User.hbm.xml"/>

</session-factory>

</hibernate-configuration>

background image

Rafał Kasprzyk

Wykorzystanie dialektu SQL

Wykorzystywany dialekt SQL

wskazywany jest w pliku

hibernate.cfg.xml lub

hibernate.properties

Wskazanie dialektu SQL wykorzystywanego

przez zastosowany serwer bazy danych

istotnie upraszcza konfigurację

Wielu opcjonalnym parametrom Hibernate

zostają nadane właściwe wartości

domyślne

Klasy do obsługi dialektu SQL znajdują

się w pakiecie org.hibernate.dialect

background image

Rafał Kasprzyk

Klasy do obsługi dialektu SQL

Niektóre klasy do obsługi dialektu

SQL:

MySQL:

MySQLDialect

PostgreSQL:

PostgreSQLDialect

HypersonicSQL: HSQLDialect

Firebird:

FirebirdDialect

Oracle:

OracleDialect

DB2:

DB2Dialect

background image

Rafał Kasprzyk

Połączenie z bazą poprzez

DriverManager

<hibernate-configuration>

<session-factory>

<!--properties-->

<property

name="connection.driver_class">

org.hsqldb.jdbcDriver</property>

<property

name="connection.url">jdbc:hsqldb:.</property>

<property

name="connection.username">admin</property>

<property name="connection.password">isol</property>

<property name="dialect">
org.hibernate.dialect.HSQLDialect</property>
<--mapping files-->
<mapping

resource="pl/isolution/hibernate/User.hbm.xml"/>

</session-factory>

</hibernate-configuration>

hibernate.cf
g.xml

background image

Rafał Kasprzyk

Połączenie z bazą poprzez

DataSource

Rozwiązanie stosowane w przypadku

wykorzystywania środowisk zarządzanych

(serwery aplikacji)

<hibernate-configuration>

<session-factory>

<!--properties-->

<property name="connection.datasource">

jdbc/hsqldb</property>

<property name="connection.username">admin</property>

<property name="connection.password">isol</property>

<property name="dialect">

org.hibernate.dialect.HSQLDialect</property>

<--mapping files-->

<mapping

resource="pl/isolution/hibernate/User.hbm.xml"/>

</session-factory>

</hibernate-configuration>

hibernate.cf
g.xml

background image

Rafał Kasprzyk

Przykład pliku hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>

<!DOCTYPE hibernate-configuration

PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-

3.0.dtd">

<hibernate-configuration>

<session-factory>

<property name="connection.driver_class">

org.hsqldb.jdbcDriver</property>

<property name="connection.url">jdbc:hsqldb:.</property>

<property name="connection.username">admin</property>

<property name="connection.password">isol</property>

<property name="connection.pool_size">1</property>

<property name="dialect">

org.hibernate.dialect.HSQLDialect</property>

<property

name="current_session_context_class">thread</property>

<property name="cache.provider_class">

org.hibernate.cache.NoCacheProvider</property>

<property name="show_sql">true</property>

<property name="hbm2ddl.auto">create</property>

<mapping resource="pl/isolution/hibernate/User.hbm.xml"/>

</session-factory>

</hibernate-configuration>

hibernate.cf
g.xml

background image

Rafał Kasprzyk

Pliki mapować jako element

konfiguracji

Definiowane w plikach *.hbm.xml, które

można tworzyć ręcznie lub z

wykorzystaniem generatorów

Inżynieria w przód

Generacja odwzorowania z POJO (np.XDoclet)

Inżynieria wstecz

Adaptacja istniejącego schematu bazy danych

Pliki opisujące odwzorowanie wskazywane

są w pliku hibernate.cfg.xml

<hibernate-configuration>

<session-factory>

<--mapping files-->

<mapping resource="pl/isolution/hibernate/User.hbm.xml"/>

</session-factory>

</hibernate-configuration>

hibernate.cf
g.xml

background image

Rafał Kasprzyk

Współbieżność

Poziom izolacji

Domyślnie Hibernate dostosowuje się

do poziomu izolacji ustawionego dla

bazy danych

Poziom izolacji można ustawić jawnie

za pomocą opcji

hibernate.connection.isolation

Możliwe wartości 1, 2, 4, 8

Dwupoziomowy cache

Poziom sesji

Poziom fabryki sesji

background image

Rafał Kasprzyk

Współbieżność

Blokowanie

Domyślnie Hibernate stosuje

blokowanie optymistyczne z

wersjonowaniem

Dla pełnego bezpieczeństwa wymagane

jest utworzenie w każdej tabeli kolumny

version/timestamp

W przypadku braku dodatkowych kolumn

blokowanie optymistyczne z

wersjonowaniem działa prawidłowo tylko w

ramach danej sesji

Problemy w przypadku obiektów odłączonych

Można zlecić jawne blokowanie

pesymistyczne dla konkretnych operacji

odczytu z bazy danych (session.get())

background image

Rafał Kasprzyk

Podsumowanie

Pliki konfiguracyjne

Obsługa dialektu SQL

Połącznie z bazą danych

DriverManager

DataSource

Przykład konfiguracji Hibernate

Pliki mapowań jako element

konfiguracji

Współbieżność w Hibernate


Document Outline


Wyszukiwarka

Podobne podstrony:
06 Przykład wykorzystania Hibernate(1)id 6376 ppt
10 Pozostałe elementy Hibernate(1)id 11016 ppt
13 ZMIANY WSTECZNE (2)id 14517 ppt
!!! ETAPY CYKLU PROJEKTU !!!id 455 ppt
2 Podstawowe definicje (2)id 19609 ppt
2 Realizacja pracy licencjackiej rozdziałmetodologiczny (1)id 19659 ppt
02 MAKROEKONOMIA(2)id 3669 ppt
11b Azotowanie i nawęglanie (PPTminimizer)id 13076 ppt
1 Wprowadzenie do psychologii pracy (14)id 10045 ppt
12a Równowaga ciecz para w układach dwuskładnikowych (a)id 14224 ppt
2 Urazy zębów u pacjentów dorosłych klasyfikacje (2)id 19701 ppt

więcej podobnych podstron