Hibernateframework 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 oraz liderem projektu jest Gavin King.

Hibernate
Logo Hibernate
Logo programu
Autor Red Hat
Pierwsze wydanie 23 maja 2001
Aktualna wersja stabilna 6.4.4
(8 lutego 2024) [±]
Język programowania Java
Platforma sprzętowa Wirtualna maszyna Javy
Rodzaj Framework
Licencja LGPL
Strona internetowa


Podprojekty edytuj

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

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

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

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

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

Hibernate Validator edytuj

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

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

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

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

Pozycja na rynku edytuj

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

Linki zewnętrzne edytuj