Что такое Hibernate.

При разработке программного обеспечения с использованием технологии объектно ориентированного программирования, которое в свою очередь работает с реляционными базами данных разработчики сталкиваются с проблемой несоответствия парадигм ООП и хранилища базы данных. С целью создания слоя, который обеспечит соответствие представления между данными в объектах программного кода  и объектами ​​реляционной базы данных была разработана спецификация Java Persistence API, обеспечивающая объектно-реляционное представление (ORM - Object/Relational Mapping).

Термин «объектно-реляционное сопоставление» относится к методу отображения данных из представления объектной модели программного кода в реляционную модель представления данных на уровне СУБД (и наоборот). Hibernate — одна из популярных реализаций спецификации JPA (Java Persistence API) платформы Java EE (Java Enterprise Edition). Hibernate не только заботится о сопоставлении Java классов с таблицами базы данных (и от типов данных Java до типов данных SQL), но также предоставляет средства запроса и извлечения данных.

Основные возможности Hibernate:

  • Hibernate обеспечивает связь Java классов и объектов (таблиц) реляционной базы данных.
  • Предоставляет средства для автоматической генерации объектов базы данных (таблиц, индексов, реляционных связей и прочего) на основании модели и описания Java классов. Освобождая разработчика от ручного создания объектов на уровне СУБД.
  • Предоставляет SQL подобный язык запросов к базе данных Hibernate Query Language (HQL), позволяющий манипулировать и обрабатывать данные на основе отображаемых классов.
  • Hibernate может использоваться как на серверах приложений, так и в отдельных настольных приложениях (Desctop Application).
  • Hibernate обеспечивает сохранение данных (персистентность - persistence), предоставляя инструменты для доступа к данным, сохранения, изменения и их удаления.