Hibernate

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania
Hibernate
Framework
Producent Red Hat
Platforma sprzętowa Wirtualna maszyna Javy
Napisane w Java
Aktualna wersja stabilna 4.3.1 Final / 22 stycznia 2014
Licencja LGPL
http://www.hibernate.org

Hibernate - 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.

Podprojekty[edytuj | edytuj kod]

W skład projektu Hibernate wchodzą następujące podprojekty:

  • Hibernate Core
  • Hibernate Annotations
  • Hibernate EntityManager
  • Hibernate Shards
  • Hibernate Validator
  • Hibernate Search
  • Hibernate Tools
  • NHibernate

Hibernate Core[edytuj | edytuj kod]

Stanowi centralną część wszystkich projektów. Pozostałe stanowią albo rozszerzenia (np. Hibernate Annotations) albo translację dla innych języków (NHibernate). Stąd podprojekt Hibernate Core jest utożsamiany z całym projektem Hibernate.

Hibernate Core jest biblioteką umożliwiającą wykonywanie mapowania obiektowo-relacyjnego dla języka Java, w którym mapowania zdefiniowane są w dokumentach XML.

Hibernate Annotations[edytuj | edytuj kod]

Rozszerzenie projektu Hibernate Core pozwalające na stosowanie adnotacji (zamiast dokumentów XML) do definiowania mapowań między obiektami Javy oraz tabelami.

Hibernate EntityManager[edytuj | edytuj kod]

Nakładka na projekt Hibernate Core wprowadzająca EntityManager jako centralną klasę, z poziomu której wykonywana jest komunikacja z bazą danych. Połączenie podprojektów Hibernate EntityManager oraz Hibernate Annotations pozwala posługiwać się techniką mapowania obiektowo-relacyjnego zgodnie ze standardem Java Persistence API.

Hibernate Shards[edytuj | edytuj kod]

Ułatwia stosowanie Hibernate Core w przypadku stosowania wielu baz danych.

Hibernate Validator[edytuj | edytuj kod]

Rozszerza zestaw adnotacji wprowadzonych przez Hibernate Annotations o takie, które umożliwiają dodanie ograniczeń na wartości pól podlegających mapowaniu. Ograniczenia te są podobne jak ograniczenia na pola w bazie danych (ang. constraints). Ograniczenia te są definiowane na poziomie obiektów podlegających zapisywaniu do bazy danych, jednakże dotyczą zarówno ograniczeń nakładanych na pola w bazie danych przy generowaniu schematu bazy danych jak i ograniczeń wprowadzanych na poziomie języka programowania.

Hibernate Search[edytuj | edytuj kod]

Rozszerza możliwości Hibernate Core o usługę pełnotekstowego wyszukiwania (ang. full text search) implementowanego w oparciu o bibliotekę Lucene. Podprojekt ten wykorzystuje również mechanizm adnotacji.

Hibernate Tools[edytuj | edytuj kod]

Obejmuje zestaw narzędzi ułatwiających wykorzystanie Hibernate Core w tworzeniu projektów w języku Java. W szczególności zawiera

  • zadania dla narzędzia Ant umożliwiające generowanie schematu bazy danych na podstawie mapowań czy też generowanie klas Java na podstawie mapowań,
  • wtyczkę dla Eclipse IDE ułatwiającą pracę z Hibernate.

NHibernate[edytuj | edytuj kod]

NHibernate jest implementacją usługi mapowania obiektowo-relacyjnego dla platformy .NET.

Pozycja na rynku[edytuj | edytuj kod]

Hibernate jest frameworkiem posiadającym najbogatsze API spośród dostępnych rozwiązań. Alternatywą dla tego frameworka stanowi iBATIS oferujący lepsze wsparcie dla obsługi procedur składowanych.

O roli jaką pełni Hibernate świadczy fakt, iż jest on wykorzystywany przez serwer aplikacyjny JBoss. Główny autor Hibernate brał udział w pracach nad opracowaniem standardowego API dla mapowania obiektowo-relacyjnego w języku Java - JPA. Specyficzny dla Hibernate interfejs programistyczny oferuje dużo bogatszy zakres opcji i metod niż standard JPA.

Innym znanym konkurentem Hibernate jest TopLink, narzędzie opracowane przez firmę Oracle udostępniające własne rozszerzenia w stosunku do standardu JPA. Zaletą TopLinka jest jego bardzo dobra integracja z innymi produktami firmy Oracle, takimi jak baza danych Oracle.

Zobacz też[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]