Hibernate - Strona główna AGH

advertisement
Hibernate
SEBASTIAN LEWICKI
BARTOSZ GRABSKI
Czym jest Hibernate

Hibernate jest to framework do realizacji warstwy dostępu do danych
(ang. persistence layer).

Zapewnia on przede wszystkim translację danych pomiędzy relacyjną
bazą danych a światem obiektowym (ang. O/R mapping).

Opiera się na wykorzystaniu opisu struktury danych za pomocą języka
XML, dzięki czemu można "rzutować" obiekty, stosowane w
obiektowych językach programowania, takich jak Java bezpośrednio
na istniejące tabele bazy danych.

Dodatkowo Hibernate zwiększa wydajność operacji na bazie danych
dzięki buforowaniu i minimalizacji liczby przesyłanych zapytań.

Jest to projekt rozwijany jako open source. Głównym inicjatorem i
liderem projektu jest Gavin King.
Krótka historia Hibernate

Hibernate pojawił się w 2001r. Został stworzony przez Gavina Kinga
wraz z kolegami z Cirrus Technologies jako alternatywa do EJB2.

Pierwotny cel: lepsze możliwości persystencji niż w EJB2

Hibernate został sworzony jako niekomercyjne przedsięwzięcie
open-source.

Od 2003 r. jest on częścia jboss.org (JBoss prowadzi szkolenia z
zakresu Hibernate), jednak wszystko jest wciaż dostępne na licencji
GNU Public Licence.
Gdzie przyda się Hibernate

w projektach, których aplikacje napisane są obiektowo i korzystają z
relacyjnych baz danych
Co dostarcza

Hibernate jest dodatkową warstwą, pomostem pomiędzy logiką
aplikacji, a bazą danych

Umożliwia zdefiniowanie obiektów przechowujących dane (jako
zwykłe klasy Javy), którymi możemy się posługiwać w naszej
aplikacji i które są w określony sposób mapowane na bazę danych
Architektura
Architektura bardziej szczegółowo

SessionFactory – cache
skompilowanych mapowań dla
pojedynczej bazy danych. Stanowi
fabrykę dla Session i
ConnectionProvider

Session – wrapper dla JDBC
connection, fabryka dla Transaction

ConnectionProvider – fabryka i pool
JDBC connection
Podprojekty Hibernate

Hibernate Core


Hibernate Annotations


Główna, centralna biblioteka. Odpowiada za mapowanie O/R
Rozszerzenie Hibernate Core pozwalające na stosowanie adnotacji
(zamiast dokumentów XML) do definiowania mapowań
Hibernate EntityManager

Połączenie podprojektówHibernate EntityManager oraz Hibernate
Annotations pozwala posługiwać się techniką mapowania obiektoworelacyjnego zgodnie ze standardem JPA
Podprojekty Hibernate

Hibernate Shards


Hibernate Validator


Ułatwia stosowanie Hibernate Core w przypadku stosowania wielu baz
danych.
Rozszerza zestaw adnotacji wprowadzonych przez Hibernate
Annotations o takie, które umożliwiają dodanie ograniczeń na wartości
pól podlegających mapowaniu – constraints
Hibernate Search
Podprojekty Hibernate

Hibernate Tools


Obejmuje zestaw narzędzi ułatwiających wykorzystanie Hibernate
Core w tworzeniu projektów w języku Java.
Nhibernate

NHibernate jest implementacją usługi mapowania obiektoworelacyjnego dla platformy .NET.
Zalety hibernate

Lekkość - nie trzeba używać specjalnych kontenerów, wystarczy
dołączyć odpowiednią bibliotekę, można go wykorzystać zarówno
do aplikacji webowych, jak i klienckich

Brak konieczności generowania ręcznie dodatkowego kodu. W
odróżnieniu np. od JDO Hibernate wymaga jedynie obecności
plików konfiguracyjnych. Dodatkowe klasy wykorzystywane przez
niego są generowane w czasie wykonywania.
Zalety hibernate

Wsparcie dla kolekcji w Javie

Czytelne definicje mappingów

Skalowalna architektura

Wysoka wydajność
www.hibernate.org
Download