Hibernate
![]() Logo programu | |
Autor | Red Hat |
---|---|
Pierwsze wydanie | 23 maja 2001 |
Aktualna wersja stabilna | 6.5.0 (25 kwietnia 2024) [±] |
Język programowania | Java |
Platforma sprzętowa | Wirtualna maszyna Javy |
Rodzaj | Framework |
Licencja | LGPL |
Strona internetowa |
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 oraz liderem projektu jest Gavin King.
Podprojekty
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
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
Rozszerzenie projektu Hibernate Core pozwalające na stosowanie adnotacji (zamiast dokumentów XML) do definiowania mapowań między obiektami Javy oraz tabelami.
Hibernate EntityManager
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
Ułatwia stosowanie Hibernate Core w przypadku stosowania wielu baz danych.
Hibernate Validator
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
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
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
NHibernate jest implementacją usługi mapowania obiektowo-relacyjnego dla platformy .NET.
Pozycja na rynku
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ż
Linki zewnętrzne
- Strona projektu (ang.)
- p
- d
- e
Platformy Javy | |
---|---|
Technologie firmy Oracle (Sun) |
|
Technologie platformy | |
Główne technologie innych firm |
|
Historia | |
Główne języki programowania |
|
Konferencje | |
Ludzie |
|