Hibernate — засіб відображення між об'єктами та реляційними структурами (object-relational mapping, ORM) для платформи Java. Hibernate є вільним програмним забезпеченням, яке поширюється на умовах GNU Lesser General Public License. Hibernate надає легкий для використання каркас (фреймворк) для відображення між об'єктно-орієнтованою моделлю даних і традиційною реляційною базою даних.
Тип | ORM |
---|---|
Розробник | Red Hat |
Стабільний випуск | 6.2.17.Final (19 грудня 2023) |
Платформа | Java |
Операційна система | Cross-platform |
Мова програмування | Java |
Ліцензія | LGPL |
Репозиторій | github.com/hibernate/hibernate-orm |
Вебсайт | www.hibernate.org |
|
Основні можливості
Метою Hibernate є звільнення розробника від значних типових завдань із програмування взаємодії з базою даних. Розробник може використовувати Hibernate як при розробці з нуля, так і для вже існуючої бази даних.
Hibernate піклується про зв'язок класів з таблицями бази даних (і типів даних мови програмування із типами даних SQL), і надає засоби автоматичної побудови SQL запитів й зчитування/запису даних, і може значно зменшити час розробки, який зазвичай витрачається на ручне написання типового SQL і JDBC коду. Hibernate генерує SQL виклики і звільняє розробника від ручної обробки результуючого набору даних, конвертації об'єктів і забезпечення сумісності із різними базами даних.
Hibernate забезпечує прозору підтримку збереження даних, тобто їхньої персистентності (англ. persistence) для «POJO»-об'єктів, себто для звичайних Java-об'єктів; єдина сувора вимога до класу, що зберігається — конструктор за умовчанням (Для коректної поведінки у деяких застосуваннях потрібно приділити особливу увагу до методів equals() і hashCode()[1] [ 6 грудня 2003 у Wayback Machine.]).
Mapping
Mapping (зіставлення, буквально — картування) Java класів з таблицями бази даних здійснюється за допомогою конфігураційних XML файлів або . При використанні файлу XML, Hibernate може генерувати скелет вихідного коду для класів тривалого зберігання (persistent). У цьому немає необхідності, якщо використовується анотація. Hibernate може використовувати файл XML або анотації для підтримки схеми бази даних.
Забезпечуються можливості з організації відношення між класами «один-до-багатьох» і «багато-до-багатьох». На додаток до управління зв'язками між об'єктами, Hibernate також може керувати рефлексивними асоціаціями, де об'єкт має зв'язок «один-до-багатьох» з іншими примірниками свого власного типу даних.
Hibernate підтримує відображення користувацьких типів значень. Це робить можливим такі сценарії:
- Перевизначення типу за умовчанням SQL, який Hibernate вибирає при відображенні стовпчика властивості.
- Картування перераховуваного типу Java до колонок БД, так ніби вони є звичайними властивостями.
- Картування однієї властивості в декілька колонок.
Персистентність
Hibernate забезпечує прозоре збереження POJO (Plain Old Java Objects — простих старих об'єктів Java). Єдина сувора вимога для персистентного класу — конструктор без аргументів, не обов'язково публічний. Для правильної поведінки деяких програм також потрібна особлива увага до методів equals() і hashCode().
Колекції об'єктів даних, як правило, зберігаються у вигляді колекцій Java-об'єктів, таких як набір (Set) і список (List). Підтримуються узагальнені класи (Generics), введені в Java 5. Hibernate може бути налаштований на «ледачі» (відкладені) завантаження колекцій. Відкладені завантаження є варіантом за умовчанням, починаючи з Hibernate 3.
Зв'язані об'єкти можуть бути налаштовані на каскадні операції. Наприклад, батьківський клас, Album (музичний альбом), може бути налаштований на каскадне збереження і/або видалення свого нащадка Track. Це може скоротити час розробки і забезпечити цілісність. Функція перевірки зміни даних (dirty checking) дозволяє уникнути непотрібного запису дій в базу даних, виконуючи SQL оновлення тільки при зміні полів персистентних об'єктів.
Мова запитів Hibernate (HQL)
Hibernate забезпечує використання SQL-подібної мови (HQL), яка дозволяє виконувати SQL-подібні запити, записані поряд з об'єктами даних Hibernate. Запити критеріїв надаються як об'єктно-орієнтована альтернатива до HQL.
Інтегрування
Hibernate може використовуватись як у самостійних програмах Java, так і в програмах Java EE, що виконуються на сервері (наприклад, сервлети чи EJB session beans). Також він може включатись як додаткова можливість до інших мов програмування. Наприклад, Adobe інтегрував Hibernate у дев'яту версію ColdFusion (що запускається на серверах з підтримкою додатків J2EE) з рівнем абстракції нових функцій і синтаксису, доданих до .
Компоненти
- Hibernate Core [ 27 жовтня 2007 у Wayback Machine.] — ядро Hibernate для Java, власний API та метадані відображення у форматі XML
- Hibernate Annotations [ 29 жовтня 2007 у Wayback Machine.] — відображення за допомогою аннотацій JDK 5.0, як стандартних для JPA, так і власних розширень
- Hibernate EntityManager [ 29 жовтня 2007 у Wayback Machine.] — реалізація Java Persistence API для Java SE і Java EE
- Hibernate Shards — Horizontal data partitioning framework
- Hibernate Validator — Data integrity annotations and validation API
- Hibernate Search — Hibernate integration with Lucene for indexing and querying data
- Hibernate Tools — Засоби розробки для Eclipse та Ant
- — NHibernate сервіс для .NET платформи
- JBoss Seam — Каркас для JSF, Ajax, та EJB 3.0/Java EE 5.0 додатків
Історія
- липень 2002 — версія 1.0
- червень 2003 — версія 2.0
- 31 березня 2005 — версія 3.0
- 16 жовтня 2006 — Hibernate Core, Annotations, Entity Manager 3.2.0.GA — підтримка JPA
- 19 березня 2007 — Hibernate Validator 3.0.0.GA
- 23 вересня 2007 — Hibernate Search 3.0.0.GA
Література
- Java Persistence with Hibernate [ 3 грудня 2007 у Wayback Machine.] — друге видання Hibernate in Action, описує Hibernate 3.x і JPA
- Hibernate in Action [ 26 грудня 2007 у Wayback Machine.], написана авторами Hibernate, описує версію 2.x.
Аналоги на інших платформах
- — аналогічне рішення для платформи .NET
- [Http: / / www.hibernate.org/109.html Так само і хеш-код]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Hibernate zasib vidobrazhennya mizh ob yektami ta relyacijnimi strukturami object relational mapping ORM dlya platformi Java Hibernate ye vilnim programnim zabezpechennyam yake poshiryuyetsya na umovah GNU Lesser General Public License Hibernate nadaye legkij dlya vikoristannya karkas frejmvork dlya vidobrazhennya mizh ob yektno oriyentovanoyu modellyu danih i tradicijnoyu relyacijnoyu bazoyu danih HibernateTipORMRozrobnikRed HatStabilnij vipusk6 2 17 Final 19 grudnya 2023 PlatformaJavaOperacijna sistemaCross platformMova programuvannyaJavaLicenziyaLGPLRepozitorijgithub com hibernate hibernate ormVebsajtwww hibernate org Mediafajli u VikishovishiOsnovni mozhlivostiMetoyu Hibernate ye zvilnennya rozrobnika vid znachnih tipovih zavdan iz programuvannya vzayemodiyi z bazoyu danih Rozrobnik mozhe vikoristovuvati Hibernate yak pri rozrobci z nulya tak i dlya vzhe isnuyuchoyi bazi danih Hibernate pikluyetsya pro zv yazok klasiv z tablicyami bazi danih i tipiv danih movi programuvannya iz tipami danih SQL i nadaye zasobi avtomatichnoyi pobudovi SQL zapitiv j zchituvannya zapisu danih i mozhe znachno zmenshiti chas rozrobki yakij zazvichaj vitrachayetsya na ruchne napisannya tipovogo SQL i JDBC kodu Hibernate generuye SQL vikliki i zvilnyaye rozrobnika vid ruchnoyi obrobki rezultuyuchogo naboru danih konvertaciyi ob yektiv i zabezpechennya sumisnosti iz riznimi bazami danih Hibernate zabezpechuye prozoru pidtrimku zberezhennya danih tobto yihnoyi persistentnosti angl persistence dlya POJO ob yektiv sebto dlya zvichajnih Java ob yektiv yedina suvora vimoga do klasu sho zberigayetsya konstruktor za umovchannyam Dlya korektnoyi povedinki u deyakih zastosuvannyah potribno pridiliti osoblivu uvagu do metodiv equals i hashCode 1 6 grudnya 2003 u Wayback Machine MappingMapping zistavlennya bukvalno kartuvannya Java klasiv z tablicyami bazi danih zdijsnyuyetsya za dopomogoyu konfiguracijnih XML fajliv abo Pri vikoristanni fajlu XML Hibernate mozhe generuvati skelet vihidnogo kodu dlya klasiv trivalogo zberigannya persistent U comu nemaye neobhidnosti yaksho vikoristovuyetsya anotaciya Hibernate mozhe vikoristovuvati fajl XML abo anotaciyi dlya pidtrimki shemi bazi danih Zabezpechuyutsya mozhlivosti z organizaciyi vidnoshennya mizh klasami odin do bagatoh i bagato do bagatoh Na dodatok do upravlinnya zv yazkami mizh ob yektami Hibernate takozh mozhe keruvati refleksivnimi asociaciyami de ob yekt maye zv yazok odin do bagatoh z inshimi primirnikami svogo vlasnogo tipu danih Hibernate pidtrimuye vidobrazhennya koristuvackih tipiv znachen Ce robit mozhlivim taki scenariyi Pereviznachennya tipu za umovchannyam SQL yakij Hibernate vibiraye pri vidobrazhenni stovpchika vlastivosti Kartuvannya pererahovuvanogo tipu Java do kolonok BD tak nibi voni ye zvichajnimi vlastivostyami Kartuvannya odniyeyi vlastivosti v dekilka kolonok PersistentnistHibernate zabezpechuye prozore zberezhennya POJO Plain Old Java Objects prostih starih ob yektiv Java Yedina suvora vimoga dlya persistentnogo klasu konstruktor bez argumentiv ne obov yazkovo publichnij Dlya pravilnoyi povedinki deyakih program takozh potribna osobliva uvaga do metodiv equals i hashCode Kolekciyi ob yektiv danih yak pravilo zberigayutsya u viglyadi kolekcij Java ob yektiv takih yak nabir Set i spisok List Pidtrimuyutsya uzagalneni klasi Generics vvedeni v Java 5 Hibernate mozhe buti nalashtovanij na ledachi vidkladeni zavantazhennya kolekcij Vidkladeni zavantazhennya ye variantom za umovchannyam pochinayuchi z Hibernate 3 Zv yazani ob yekti mozhut buti nalashtovani na kaskadni operaciyi Napriklad batkivskij klas Album muzichnij albom mozhe buti nalashtovanij na kaskadne zberezhennya i abo vidalennya svogo nashadka Track Ce mozhe skorotiti chas rozrobki i zabezpechiti cilisnist Funkciya perevirki zmini danih dirty checking dozvolyaye uniknuti nepotribnogo zapisu dij v bazu danih vikonuyuchi SQL onovlennya tilki pri zmini poliv persistentnih ob yektiv Mova zapitiv Hibernate HQL Hibernate zabezpechuye vikoristannya SQL podibnoyi movi HQL yaka dozvolyaye vikonuvati SQL podibni zapiti zapisani poryad z ob yektami danih Hibernate Zapiti kriteriyiv nadayutsya yak ob yektno oriyentovana alternativa do HQL IntegruvannyaHibernate mozhe vikoristovuvatis yak u samostijnih programah Java tak i v programah Java EE sho vikonuyutsya na serveri napriklad servleti chi EJB session beans Takozh vin mozhe vklyuchatis yak dodatkova mozhlivist do inshih mov programuvannya Napriklad Adobe integruvav Hibernate u dev yatu versiyu ColdFusion sho zapuskayetsya na serverah z pidtrimkoyu dodatkiv J2EE z rivnem abstrakciyi novih funkcij i sintaksisu dodanih do KomponentiHibernate Core 27 zhovtnya 2007 u Wayback Machine yadro Hibernate dlya Java vlasnij API ta metadani vidobrazhennya u formati XML Hibernate Annotations 29 zhovtnya 2007 u Wayback Machine vidobrazhennya za dopomogoyu annotacij JDK 5 0 yak standartnih dlya JPA tak i vlasnih rozshiren Hibernate EntityManager 29 zhovtnya 2007 u Wayback Machine realizaciya Java Persistence API dlya Java SE i Java EE Hibernate Shards Horizontal data partitioning framework Hibernate Validator Data integrity annotations and validation API Hibernate Search Hibernate integration with Lucene for indexing and querying data Hibernate Tools Zasobi rozrobki dlya Eclipse ta Ant NHibernate servis dlya NET platformi JBoss Seam Karkas dlya JSF Ajax ta EJB 3 0 Java EE 5 0 dodatkivIstoriyalipen 2002 versiya 1 0 cherven 2003 versiya 2 0 31 bereznya 2005 versiya 3 0 16 zhovtnya 2006 Hibernate Core Annotations Entity Manager 3 2 0 GA pidtrimka JPA 19 bereznya 2007 Hibernate Validator 3 0 0 GA 23 veresnya 2007 Hibernate Search 3 0 0 GALiteraturaJava Persistence with Hibernate 3 grudnya 2007 u Wayback Machine druge vidannya Hibernate in Action opisuye Hibernate 3 x i JPA Hibernate in Action 26 grudnya 2007 u Wayback Machine napisana avtorami Hibernate opisuye versiyu 2 x Analogi na inshih platformah analogichne rishennya dlya platformi NET Http www hibernate org 109 html Tak samo i hesh kod