Что такое Hibernate? - Архитектура и рамки - Особенности и преимущества

Содержание:

Anonim

Что такое Hibernate?

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

Архитектура

Чтобы узнать больше о спящем режиме, нам нужно понять его архитектуру, которая включает в себя:

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

Он в основном используется для связи с базой данных. Здесь мы просто создаем некоторые сущности, которые являются ничем иным, как классом Java, который создаст для нас таблицу базы данных в базе данных.

Фреймворк

Здесь мы сталкиваемся с вопросом, почему мы используем hibernate framework из java, если у нас уже есть основные принципы java. Итак, вот ответ на это:

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

Особенности Hibernate

Итак, речь шла о фреймворке jiber hibernate и его архитектуре. Давайте поговорим о возможностях последней стабильной версии hibernate, выпущенной 57 дней назад, то есть 23 февраля 2019 года. Разработанная программным обеспечением Red Hat, это платформа виртуальных машин со множеством функций:

  • Он поддерживает JMX и JCA.
  • Это обеспечивает возможность интеграции J2EE.
  • Во время инициализации системы он генерирует SQL.
  • При желании можно обеспечить пул внутренних соединений и подготовленное кеширование операторов.
  • Он поддерживает оптимистическую блокировку с контролем версий.
  • Это обеспечивает извлечение внешнего соединения.
  • Это вводит Ленивая инициализация.
  • Он обеспечивает кеш уровня сеанса и дополнительный кэш второго уровня.
  • Он обеспечивает двухслойную архитектуру кэширования.
  • Автоматическая генерация первичного ключа.
  • Он поддерживает жесткую концепцию составных ключей.
  • Он поддерживает концепцию обособленного объекта.
  • Он вводит концепцию автоматической грязной проверки.
  • Это обеспечивает прозрачное сохранение без обработки байтового кода.
  • Это обеспечивает объект / реляционные отображения. Здесь представлены различные стратегии сопоставления O / R как сопоставление нескольких объектов с сопоставлением с одной строкой,
  • Полиморфные ассоциации, двунаправленная ассоциация, фильтрация ассоциаций. Он также предоставляет документы сопоставления XML.
  • Он предоставляет различные объектно-ориентированные языки запросов.
  • Минимальный объектно-ориентированный язык запросов Hibernate (HQL), собственные запросы SQL
  • Высокая объектно-ориентированная концепция критериев.

Почему мы используем Hibernate

Здесь были все последние функции спящего режима. Далее следует вопрос, почему мы его используем, поэтому вот причины, по которым мы предпочитаем использовать спящий режим:

  • Управление транзакциями
  • ассоциации
  • наследование
  • Hibernate кеширование
  • Versioning
  • Функциональность аудита
  • Поддержка аннотаций JPA
  • Пул подключений
  • Избегайте блоков try-catch
  • Избегайте ленивой загрузки
  • Уменьшает повтор кода

преимущества

Кратко расскажу обо всем, что происходит в hibernate, и пришло время обсудить основную повестку дня, а именно преимущества и недостатки использования hibernate. Рассматривая тему, начнем с преимуществ hibernate, которые заключаются в следующем:

  1. ORM - обслуживание простое и экономически эффективное.
  2. Прозрачная настойчивость
  3. База данных независима
  4. HQL. Расширенные функции HQL, такие как разбиение на страницы и динамическое профилирование, отсутствуют в SQL. Таким образом, мы можем использовать его в спящем режиме.
  5. Двухслойное кеширование
  6. Свойство версии
  7. Открытый исходный код и бесплатное программное обеспечение
  8. Масштабируемость проста
  9. Ленивая загрузка - концепция отложенной загрузки выбирает только необходимый объект, необходимый для выполнения приложения.
  10. Легко учить
  11. Также поддерживает коллекции, такие как список, набор, карта.
  12. возможность генерировать первичные ключи
  13. Hibernate предоставил классы диалекта
  14. Он поддерживает отношения типа «один ко многим», «один к одному», «многие ко многим ко многим», «многие к одному»

Недостатки

Обладая преимуществами, Hibernate также имеет гораздо меньше недостатков. Итак, вот недостатки Hibernate:

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

Вывод

Таким образом, учитывая все эти темы, мы также должны знать о будущем гибернации. Можно сказать, что Hibernate еще долго будет доминирующим инструментом ORM, учитывая, что JPA быстро догоняет. У меня сложилось впечатление, что Hibernate является наиболее широко используемой реализацией JPA (до OpenJPA и EclipseLink), а также, что ее нативный или базовый API все еще более мощен, чем JPA 2. По одним этим причинам я думаю, что он будет существовать довольно долго время. Очень предпочтительно использовать Spring MVC в спящем режиме, так как он наиболее совместим с MVC. Использование инфраструктуры персистентности, такой как Hibernate, позволяет разработчикам сосредоточиться на написании кода бизнес-логики вместо написания точного и надежного слоя персистентности, который включает в себя написание SQL-запросов, кода JDBC, управление соединениями и т. Д. Поэтому я могу предложить использовать hibernate в качестве инфраструктуры java в качестве это самый выдающийся Java-фреймворк, используемый в настоящее время.

Рекомендуемые статьи

Это было руководство к тому, что такое Hibernate. Здесь мы обсуждаем архитектуру, особенности, структуру, преимущества и недостатки Hibernate. Вы также можете взглянуть на следующие статьи, чтобы узнать больше -

  1. Hibernate Интервью Вопросы
  2. Что такое NumPy?
  3. Что такое открытая корзина?
  4. Struts 2 Интервью Вопросы
  5. Соглашения об именах Java