Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Java_sp.doc
Скачиваний:
26
Добавлен:
29.10.2018
Размер:
1.12 Mб
Скачать

13. Объектно-реляционное отображение. Подключаемы провайдеры персистенции.

ORM берет на себя “превращение” таблицы в объект.

Технология JPA является абстракцией над JDBC и позволяет быть независимым от SQL. Все классы и интерфейсы JPA расположены в пакете javax.persistence, основными составляющими технологии являются:

  • ORM (механизм объектно-реляционного отображения);

  • Entity manager API — позволяет осуществлять базовые операции CRUD;

  • JPQL и Criteria API — механизмы извлечения данных;

  • Управление транзакциями и блокировками (как с использованием JTA, так и без);

  • Механизмы обратных вызовов и listener-ов.

<?xml version="1.0" ?>

<persistence version="1.0"

xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/persistence

http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">

<persistence-unit name="Наименование Persistence Unit-a" transaction-type="тип транзакции">

<provider>наименование провайдера, например оrg.apache.openjpa.persistence.PersistenceProviderImpl</provider>

<jta-data-source>наименование источника данных</jta-data-source>

<properties>

Тут определяются специфические для провайдера свойства, например

<property name="openjpa.ConnectionDriverName" value="oracle.jdbc.OracleDriver"/>

</properties>

</persistence-unit>

</persistence>

Наименование Persistence Unit-a - это именование экземпляра Unit-a на сервере приложения. По этому имени в дальнейшем нужно будет получать Enterprise Manager-ы. Enterprise Manager - это объект, который выполняет управление всеми процессами JPA для данного Unit-a.

Тип транзакции - Наименование типа транзакции. JPA технология поддерживает работу с транзакциями СУБД на разных уровнях. Для источников данных расположенных на сервере приложений необходимо использовать значение JPA для типа транзакции. В этом случае следить за своевременными выполнениями commit и rollback процедурами будет контейнер (он же сервер приложений). В этом случае, однако усложняется "ручное" влияние на эти процессы.

Наименование провайдера - это наименование класса-реализации JPA. Т.к. в J2EE используется только описание JPA, то конкретная реализация возлагается на плечи сторонних разработчиков. Тут выделяются Toplink, Hibernate, OpenJPA и т.д. Рекомендуется использовать Hibernate, т.к. это наиболее используемая технология. Однако в зависимости от сервера приложений такое предпочтение может меняться. Например, в состав сервера приложений уже входит некоторая реализация JPA.

Наименование источника данных - JNDI имя источника данных (Data Source), объявленного на сервере приложений. Существует возможность объявить набор источников данных на сервере приложений и возложить задачу манипулирования драйверами, пулами соединений и другими сопутствующими объектами на сервер приложений. Это существенно упрощает разработку. В таком случае, нам необходимо только лишь обратиться к заранее подготовленному источнику.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]