Научная статья на тему 'ОБЗОР БИБЛИОТЕК HIBERNATE'

ОБЗОР БИБЛИОТЕК HIBERNATE Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
30
5
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЯЗЫКИ ПРОГРАММИРОВАНИЯ / ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / КОМПОНЕНТЫ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Фадеев И.В., Фадеева Т.А.

В статье приведен обзор библиотек HIBERNATE.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ОБЗОР БИБЛИОТЕК HIBERNATE»

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

Через финансовую систему государство воздействует на формирование централизованных и децентрализованных денежных фондов, фондов накопления и потребления, используя для этого налоги, расходы государственного бюджета, государственный кредит.

Таким образом, можно сделать вывод, что государственный бюджет является главным звеном финансовой системы. Он представляет собой форму образования и использования

централизованного фонда денежных средств для обеспечения функций органов государственной власти.

Использованные источники:

1. Салимгареева Г. Р. Модели финансовой системы Российской Федерации // Молодой ученый. - 2014. - №3. - С. 669-671.

2. Шитов В.Н. История финансов России: учебное пособие / В.Н. Шитов - 3-е изд., стер. - М.: КНОРУС, 2016.

3. Финансовая система РФ: [сайт]. URL: http://www.finteoria.ru/finross.html

4. Юридический портал - Финансы и финансовая система. Единство финансовой системы РФ: [сайт]. URL: http://interlaw.dax.ru/student/4/M4.htm

5. Финансовая система РФ - Финансы, кредит и денежное обращение: [сайт]. URL: http://www.cis2000.ru/Budgeting/OptionC.shtml

Фадеев И. В. студент 3 курса

факультет «Информационных систем и технологий»

Фадеева Т.А. студент 3 курса

факультет «Информационных систем и технологий»

Чернова С.В. с.п., научный руководитель, доцент Поволжский государственный университет телекоммуникации и

информатики Россия, г. Самара

ОБЗОР БИБЛИОТЕК HIBERNATE Аннотация: в статье приведен обзор библиотек HIBERNATE. Ключевые слова: языки программирования, Java, программное обеспечение, компоненты, hibernate, mapping.

Keywords: programming languages, Java, software, components, hibernate, mapping.

Hibernate — библиотека для языка программирования Java, предназначенная для решения задач объектно-реляционного отображения (object-relational mapping — ORM). Библиотека представляет собой свободное программное обеспечение с открытым исходным кодом (open source), распространяемое на условиях GNU Lesser General Public License. Данная библиотека предоставляет лёгкий в использовании каркас (фреймворк) для отображения объектно-ориентированной модели данных в традиционные реляционные базы данных.

Hibernate является связующим звеном между Java классами и таблицами базы данных, соответствие типов данных Java с типами данных языка запросов SQL. Она предоставляет собой средства для автоматического создания и обновления таблиц, конфигурирования запросов и обработки полученных данных. Таким образом, при использовании Hibernate можно значительно сократить время разработки, связанное с ручным созданием SQL-запросов JDBC (от англ. Java Data Base Connectivity) - кода.

Для использования Hibernate необходимо создать легкий в использовании скелет (фреймворк), отображающий объектно-ориентированную модель представления данных в традиционные реляционные базы данных. Подключить библиотеку к приложению можно как в процессе проектирования java классов и SQL таблиц «с нуля», так и при работе с уже существующей базой данных.

Одним из основных достоинств библиотеки Hibernate является автоматическая генерация SQL-запросов и обработка результирующего набора данных по преобразованию объектов, т.е. выполнение сериализации объектов. Таким образом обеспечивается кроссплатформенность приложения. То есть, Hibernate обеспечивает прозрачную поддержку сохранности данных (persistence) для «POJO» (Plain Old Java Object). POJO класс содержит только поля, без дополнительной логики их обработки. Доступ ко всем полям такого класса осуществляется только через методы get/set.

Для связи Java-классов с таблицами БД Hibernate использует Mapping (сопоставление, проецирование), которое осуществляется с помощью конфигурационных XML-файлов или Java-аннотаций, и обеспечивает возможности по организации отношения между классами «один-ко-многим» и «многие-ко-многим». В дополнение к управлению связями между объектами Hibernate может также управлять рефлексивными отношениями, где объект имеет связь «один-ко-многим» с другими экземплярами своего собственного типа данных.

Hibernate поддерживает использование обобщенных классов (generics), введённые в Java 5, и может быть настроен на «ленивые» (отложенные) загрузки коллекций, которые является вариантом, используемым по умолчанию.

Связанные объекты Hibernate позволяет настроить на каскадные

операции. Например, родительский класс Album (музыкальный альбом) может быть настроен на каскадное сохранение и/или удаление своего потомка Track, что существенно сокращает время разработки и обеспечивает целостность данных. Функция проверки изменения данных (dirty checking) позволяет избежать ненужной записи действий в БД, выполняя SQL-обновление только при изменении полей персистентных (persist) объектов.

Персистентные (англ. persistent) — это объекты, которые при внесении в них каких-то изменений сохраняют все свои предыдущие состояния и доступ к этим состояния.

Язык запросов Hibernate (HQL) - позволяет выполнять SQL-подобные запросы, определенные вместе с объектами данных Hibernate.

Преимущество данного способа написания запросов, заключается в написании обычных SQL запросов, но с использованием в нём Java -объектов, что способствует пониманию такого запроса человеком. Но при больших и сложных запросах снижается производительность.

Язык запросов Criteria - позволяет создавать запросы, применяя различные критерии, которые представляют собой условия, такие как: and, or, like и и.т.д.

Основное преимущество такого способа написания запросов заключается в том, что работать нужно только с одним языком Java. Но при объёмном запросе сложность написания резко возрастает из-за большой вложенности.

Также Hibernate поддерживает и обычный язык запросов SQL, многих диалектов, которые указываются в конфигурационном файле hibernate(hibernate.cfg.xml).

При написании простого запроса SQL нужно добавлять к нему тип возвращаемых объектов. Для этого существует метод addEntity(Object.class).

Компоненты Hibernate.

В Hibernate понятие компонент используется в нескольких различных контекстах, для разных целей.

Зависимые объекты.

Компонент - это содержащийся объект, который сохраняется как значение, а не как сущность. Термин компонент относится к объектно-ориентированному понятию композиция.

Так как компоненты являются композицией, они не поддерживают совстместно используемых ссылок. Иными словами, экземпляр компонента всегда один для содержащего его экземпляра класса. Не бывает ситуации, когда два разных экземпляра содержат ссылку на один и тот же экземпляр компонента. Значение null является специальным для компонента. Когда подгружается содержащийся объект, Hibernate предполагает, что если все колонки компонента отсутствуют (null), то компонент также отсутствует (null). Для большинства случаев, это так и есть.

Свойства компонента могут быть любого из типов Hibernate (коллекции, ассоциации многие к одному (many-to-one), другие компоненты,

и т.д.), за исключением примитивных типов. Причём, вложенные компоненты не считаются экзотическим случаем. Hibernate предназначен для поддержки очень детализированной объектной модели.

Коллекции зависимых объектов

Поддерживаются коллекции компонентов. Объявляйте коллекции компонентов заменой тэга <element> на <composite-element>.

Составные элементы могут содержать компоненты, но не коллекции. Если ваш составной компонент сам содержит компоненты, используйте тэг <nested-composite-element>. Это достаточно редкий случай - коллекция компонентов, каждый из которых содержит компоненты.

Отображение композитных элементов не поддерживает необязательные (null) свойства, когда используется <set>. При удалении Hibernate использует значения каждого столбца для идентификации удаляемых объектов (это связано с тем, что в таблицах с составными элементами не существует выделенного первичного ключа), что невозможно для null значений. Вы должны использовать только обязательные (not-null) свойства в составных элементах или использовать <list>, <map>, <bag> или <idbag>.

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

Динамические компоненты

Семантика отображения <dynamic-component> идентична <component>. Преимущество такого способа отображения, в возможности определять истинное свойство JavaBean в момент развёртывания приложения на сервере приложений, редактируя документ маппинга. (Изменение документа маппинга во время выполнения также возможно, используя Document object model(DOM) - парсер.)

Использованные источники:

1. P. Peak, N. Heudecker - «Hibernate Quckly», 2003 г.

2. C. Bauer, G. King - «Java Persistence with Hibernate»

i Надоели баннеры? Вы всегда можете отключить рекламу.