Evgeniy Krivosheev Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 6 – Поддержка ORM.

Презентация:



Advertisements
Похожие презентации
Evgeniy Krivosheev Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 4 – JNDI.
Advertisements

Evgeniy Krivosheev Andrey Stukalenko Vyacheslav Yakovenko Last update: Nov, 2013 Spring Framework Module 1 - Introduction.
Evgeniy Krivosheev Andrey Stukalenko Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 3 – AOP.
Evgeniy Krivosheev Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 6 – Поддержка ORM.
Evgeniy Krivosheev Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 6 – ORM Support.
Evgeniy Krivosheev Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 4 – DAO, JDBC.
Evgeniy Krivosheev Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 4 – DAO, JDBC.
Evgeniy Krivosheev Andrey Stukalenko Vyacheslav Yakovenko Vladimir Sonkin Last update: Feb, 2013 Spring Framework Module 2 – Components Model (IoC, DI)
Evgeniy Krivosheev Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 7 – Transactions.
Evgeniy Krivosheev Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 4 – JNDI.
Evgeniy Krivosheev Andrey Stukalenko Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 3 – AOP.
Evgeniy Krivosheev Andrey Stukalenko Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 1 – Введение.
Evgeniy Krivosheev Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 7 – Transactions.
Транксрипт:

Evgeniy Krivosheev Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 6 – Поддержка ORM

2 Содержание ORM Преимущества в работе с ORM с использованием Spring Обзор ORM модуля Универсальный DAO Библиотеки ORM JPA Инициализация JPA

3 Spring :: ORM ORM - Object-relational mapping связывает базы данных с концепциями объектно-ориентированных языков программирования

4 Spring :: ORM ORM - Object-relational mapping связывает базы данных с концепциями объектно-ориентированных языков программирования

5 Spring :: ORM ORM - Object-relational mapping

6 Spring :: Преимущества в работе с ORM Тестирование ; Обработка исключений ; Управление ресурсами (DataSource, mappings) ; Управление транзакциями ;

7 Spring :: ORM :: Пример BOOK ID: integer TITLE : varchar COMMENT : varchar DATE_RELEASE : timestamp AUTHOR_ID: integer

8 Spring :: ORM :: Пример Имплементация с помощью Spring JDBC

9 Spring :: ORM :: Пример BOOK ID: integer TITLE : varchar DATE_RELEASE : timestamp

10 Spring :: ORM :: Пример

11 Spring :: ORM :: - для DAO beans оборачивает checked исключения в иерархию DataAccessException <bean class="org.springframework.dao.annotation. – для – для контроллеров Стереотип – аннотация-маркер, сообщающий, для чего предназначен бин, в общей архитектуре приложения. Предназначена для использования в AOP и в различных инструментах.

12 Spring :: ORM :: Пример

13 Spring :: ORM :: Универсальный DAO

14 Spring :: ORM :: Универсальный DAO

15 Spring :: ORM :: JPA Java Persistence API (JPA) API, входящий с версии Java 5 в состав платформ Java SE и Java EE Поддержка сохранности данных, предоставляемая JPA, покрывает области: непосредственно API, заданный в пакете javax.persistence; платформо-независимый объектно-ориентированный язык запросов Java Persistence Query Language; метаинформация, описывающая связи между объектами. генерация DDL для сущностей

16 Spring :: ORM :: JPA

17 Spring :: ORM :: JPA

18 Spring :: ORM :: JPA

19 Spring :: Библиотеки ORM org.springframework.orm org.springframework.orm.hibernate3 org.springframework.orm.hibernate4 org.springframework.orm.ibatis org.springframework.orm.jdo org.springframework.orm.jpa JPA

20 Spring :: Инициализация JPA В данный момент Spring поддерживает три варианта инициализации JPA EntityManagerFactory: Получение EntityManagerFactory из JNDI; Используя LocalEntityManagerFactoryBean: Создает EntityManager, управляемый приложением Используется в небольших приложениях, прототипах и с целью организовать тестирование Нет поддержки глобальных транзакций, невозможно использовать уже существующий JDBC DataSource Используя LocalContainerEntityManagerFactoryBean: Создает EntityManager, управляемый контейнером; Более гибкая конфигурация, глобальные транзакции Конфигурируется под различные серверы приложений (WebLogic, OC4J, GlassFish, Tomcat, Resin, JBoss)

21 Spring :: Инициализация JPA Получение EntityManagerFactory из JNDI:

22 Spring :: Инициализация JPA Используя LocalEntityManagerFactoryBean: -Не поддерживает глобальных транзакций -Небольшое число конфигурационных настроек -Не может ссылаться на существующий JDBC DataSource bean

23 Spring :: Инициализация JPA LocalContainerEntityManagerFactoryBean – фабрика, предоставляющая максимум возможностей: По поведению схож с EntityManagerFactory, который можно получить от сервера приложений через JNDI. -Позволяет конфигурировать dataSource

24 Entity-классы должны были перечислены в META-INF/persistence.xml: Spring :: Инициализация JPA

25 Spring :: Инициализация JPA Однако в Spring 3.1+ можно обойтись без перечисления entity- классов, включив автосканирование всех классов пакета packagesToScan:

26 Пример с инъекцией фабрики EntityManagerFactory: Spring :: Инициализация JPA

27 Spring :: Инициализация JPA Application Managed Entity Manager EntityManager, полученный Используется в JSE приложениях для Java Persistence API (JPA) -не потокобезопасны -создаются каждый раз -должны закрываться после использования -управлять транзакциями надо вручную Container Managed Entity Manager EntityManager, полученный -thread-safe -transactional proxy -Ведет себя, как EntityManager, полученный через JNDI

28 Spring :: Инициализация JPA Пример с инъекцией EntityManager (Container Managed Entity Manager):

29 Упражнения : 7 : «Использование ORM в Spring при работе с данными» – 45 мин – самостоятельная работа; – 15 мин – обсуждение;

30 Вопросы!?