Какво е хибернация?

Официално известен като Hibernate ORM, това е обектно-релационно картографско средство или рамка за езика за програмиране на Java. Това е безплатният софтуер съгласно GNU Lesser General Public License 2.1. Той има за цел да предостави на потребителя рамката за обработка на обектно-релационното съпротивление на импеданса. Той също така управлява постоянни достъпи до база данни с функции на много високо ниво на работа с обекти. Това е междинен софтуер на Java, използван за обектно-релационно картографиране и за изпълнение на ефективна устойчивост на обекта.

архитектура

За да научим повече за зимен сън, трябва да разберем неговата архитектура, която се състои от:

  • Код за приложение на Java се състои от всички класове, променливи и обекти, които определят бизнес логиката на приложението. Тези класове общуват с хибернатора.
  • След това идва Hibernate и неговите основни принципи, използвайки които бихме могли да запазим (съхраняваме или запазваме и извличаме) обектите от нашите класове на бизнес ниво, общувайки със сървъра на базата данни.
  • Той използва Java core API, Java Database Connectivity (JDBC), Java Transaction API (JTA), Java Naming и Directory Interface (JNDI), за да комуникира с базата данни, за да запази състоянието на обект чрез извършване на четене, създаване, актуализиране, изтрийте (CRUD) операции.

Основно се използва за комуникация с базата данни. Тук просто създаваме някои образувания, което не е нищо друго освен клас java, който ще създаде таблица на базата данни за нас в базата данни.

рамка

Тук се натъкваме на въпрос, че защо използваме хибернаторна рамка на java, ако вече имаме основните java принципи. Ето тук е отговорът на това:

  • Използвани са най-добрите JDBC концепции като:
  1. Rowset вместо ResultSet
  2. DataSource (обединяване на връзки) вместо DriverManager
  3. Партидни операции вместо индивидуални операции
  4. PreparedStatement вместо Statement
  • Разходите за разработване на проекта се намаляват до голям фактор.
  • Няма течове на памет
  • Управлението на асоциации като един към много и т.н. е просто и лесно в сравнение с работата със свойства за събиране като java.util.Set, List, Map.
  • Бидейки рамка за ORM, зимен сън ще получи всичките си предимства:
  • Поддържа кеш на второ ниво
  • Обектът се превръща в запис и обратно.
  • Допълнително поддържа езика на обектните заявки (HQL)
  • Поддържа множество генератори на първични ключове

Характеристики на хибернация

Така че всичко беше за java hibernate Framework и нейната архитектура, нека поговорим за характеристиките на най-новата хибернатна стабилна версия, пусната преди 57 дни, т.е. 23 февруари 2019. Разработена от софтуер Red Hat, тя е виртуална машина платформа с много функции:

  • Той поддържа JMX и JCA.
  • Той осигурява функция на J2EE интеграция.
  • По време на инициализация на системата генерира SQL.
  • По желание осигурете вътрешно обединяване на връзки и кеширане на подготвени оператори.
  • Той поддържа оптимистично заключване с версия.
  • Той осигурява външно извличане.
  • Той въвежда Lazy инициализация.
  • Той осигурява кеш на ниво сесия и незадължителен кеш от второ ниво.
  • Тя осигурява двуслойна кеш архитектура.
  • Автоматично генериране на първичния ключ.
  • Той поддържа нелеката концепция на композитни клавиши.
  • Той поддържа концепция за отделен обект.
  • Въвежда концепция за автоматична мръсна проверка.
  • Той осигурява прозрачна устойчивост без байтова обработка на кода.
  • Той предоставя обект / релаксиращи карти. Ето различни стратегии за O / R картографиране като множество обекти за едноредово картографиране,
  • Полиморфни асоциации, двупосочна асоциация, филтриране на асоциации. Също така предоставя XML документи за картографиране.
  • Той предоставя различни обектно-ориентирани езици за заявки.
  • Минимално обектно ориентиран хибернатен език на заявките (HQL), естествени SQL заявки
  • Високо обектно-ориентирана концепция за критерии.

Защо използваме хибернация

Тук бяха всички най-новите характеристики на зимен сън. Следва въпросът, че защо го използваме, така че ето причините, поради които предпочитаме да използваме хибернация:

  • Управление на транзакциите
  • асоциации
  • наследяване
  • Хибернация кеширане
  • Версиите
  • Функция за одит
  • Подкрепа за анотация на JPA
  • Обединяване на връзки
  • Избягвайте пробни блокове
  • Избягвайте мързеливо зареждане
  • Намалява повторения код

Предимства

Накратко, описвайки всичко за хибернацията, сега е време да обсъдим основната програма, която е предимствата и недостатъците на използването на хибернация. Разглеждайки темата, нека започнем с предимствата на хибернацията, които са както следва:

  1. ORM - поддръжката е лесна и рентабилна.
  2. Прозрачна устойчивост
  3. Независима база данни
  4. HQL - Разширените функции на HQL като страници и динамично профилиране не присъстват в SQL. Така че можем да го използваме в хибернация.
  5. Двуслойно кеширане
  6. Версия Свойство
  7. С отворен код и безплатен софтуер
  8. Мащабируемостта е лесна
  9. Lazy-Loading - Концепцията за мързеливо зареждане извежда само необходимия обект, който е необходим за изпълнение на приложение.
  10. Лесно за учене
  11. Също така поддържа колекции като List, Set, Map.
  12. възможност за генериране на първични ключове
  13. Хибернация осигурява класове по диалект
  14. Той поддържа връзки като "Един към много", "Един към един", "Много-много-много-много", "Много-към-един"

Недостатъци

С предимствата зимен сън има и много по-малко недостатъци. Ето и недостатъците на зимен сън:

  1. малко по-бавно от чисто JDBC
  2. издаване на код на котела
  3. генерира много SQL изявления по време на изпълнение
  4. Хибернацията не е подходяща за пакетна обработка
  5. Хибернацията е бавна, защото използва време за размисъл
  6. Много API за научаване
  7. Понякога отстраняването на грешки и настройката на производителността става трудно.
  8. Не е подходящ за малки проекти
  9. Не позволява множество вложки
  10. Генерира сложни заявки с много присъединения
  11. HQL заявките не могат да извикат PL / SQL програма

заключение

Така че с всички тези обхванати теми, ние също трябва да знаем за бъдещето на зимен сън. Можем да кажем, че зимен сън все още ще бъде доминиращият инструмент за ORM за много по-дълго, като се има предвид, че JPA бързо наваксва. Впечатлението ми е, че Hibernate е най-широко използваната реализация на JPA (преди OpenJPA и EclipseLink), а също така, че вграденият или ядрен API е все още по-мощен от JPA 2. Само по тези причини мисля, че ще бъде доста дълго време. Много е за предпочитане да използвате Spring MVC в хибернация, тъй като е най-съвместим MVC. Използването на рамка за устойчивост като Hibernate позволява на разработчиците да се съсредоточат върху писането на бизнес логически код, вместо да пишат точен и добър постоянен слой, който включва писане на SQL заявки, JDBC код, управление на връзки и др. Така че мога да предложа използването на хибернация като java рамка като това е най-известната рамка на Java, използвана в наши дни.

Препоръчителни статии

Това е ръководство за това какво е зимен сън. Тук обсъждаме архитектурата, характеристиките, рамката, предимствата и недостатъците на хибернацията. Може да разгледате и следните статии, за да научите повече -

  1. Хибернални въпроси за интервю
  2. Какво е NumPy?
  3. Какво е Open Cart?
  4. Stuts 2 Въпроси за интервю
  5. Конвенции за именуване на Java