Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Hibernate

Содержание

Аннотации в Java (java annotation types) Аннотации представляют собой некие метаданные, которые могут добавлятся в исходный код программы и семантически не влияют на нее, но могут использоваться в процессе анализа кода, компиляции и даже во
Hibernate Аннотации в Java  (java annotation types) Аннотации представляют собой некие метаданные, Вот основные варианты использования аннтоаций:предоставлять необходимую информацию для компилятора;предоставлять метаданные различным инструментам Для описания новой аннотации используется ключевое слово @interface. Вот банальный пример аннотации: public пример ее использования:@Description(title= Mavenэто инструмент для сборки Java проекта: компиляции, создания jar, создания дистрибутива программы, генерации документации Преимущества Maven:Независимость от OS. Сборка проекта происходит в любой операционной системе. Файл проекта один Вся структура проекта описывается в файле: pom.xml  (POM – Project Object Model), который должен Жизненный цикл validate — проверяет корректность метаинформации о проектеcompile — компилирует исходникиtest — прогоняет тесты чтобы подключить Spring Framework необходимо определить следующую зависимость:       org.springframework      spring      2.5.5   Object Relational Mapping (ORM)  Объектно-реляционное отображение Взаимодействие между типами баз данных и подходами доступа к данным Примеры реляционной и объектной моделиРеляционная модельОбъектная модель предметной областиCATALOG_ITEM отображается на иерархию Отображение  таблицы CATALOG и класса Catalog.java Класс Catalog связан с таблицей Работа с Hibernate API Работая с данными в объектно-ориентированном языке, мы работаем Протокол команд SQLOracleHibernate: select SEQ_ID.nextval from dualHibernate: select SEQ_ID.nextval from dualHibernate: select Возможности ORMЗагрузка связанных объектов “по требованию” (lazy loading)Обеспечение пессимистической/оптимистической блокировокКэширование загруженных объектовSQL-подобные запросы по объектной модели Преимущества ORMНет необходимости писать рутинные insert/update/delete/select для CRUD операцийУсловия связи между объектами Недостатки ORMВозможны проблемы с производительностью для сложных запросов на объектном SQL.Затрудняет использование Реализации ORMHibernate/NHibernate www.hibernate.org (Java / .NET 1.1,2.0)Oracle® TopLink® (Java)iBatis framework (Java, .NET) Стандарты ORMEJB 1.1 Entity BeansJava Data Object (JDO)JPOXOpenAccess JDOEJB 3.0 Persistence APIHibernateOracle TopLink Литература и ссылкиМартин Фаулер “Архитектура корпоративных программных приложений”. М., “Вильямс”, 2004http://en.wikipedia.org/wiki/Object-relational_mappinghttp://www.hibernate.org/hib_docs/reference/ru/html_single/
Слайды презентации

Слайд 2 Аннотации в Java (java annotation types)
Аннотации представляют собой

Аннотации в Java (java annotation types) Аннотации представляют собой некие метаданные,

некие метаданные, которые могут добавлятся в исходный код программы

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

Слайд 3 Вот основные варианты использования аннтоаций:
предоставлять необходимую информацию для

Вот основные варианты использования аннтоаций:предоставлять необходимую информацию для компилятора;предоставлять метаданные различным

компилятора;
предоставлять метаданные различным инструментам для генерации кода, конфигураций и

т.д.;
использоваться в коде во время выполнения програмного кода (reflection).
Аннотации могут быть применены, например, к декларациям классов, полей, методов, ну и конечно же аннотаций :).


Слайд 4 Для описания новой аннотации используется ключевое слово @interface. Вот

Для описания новой аннотации используется ключевое слово @interface. Вот банальный пример аннотации:

банальный пример аннотации:
public @interface Description {
String title();
int

version() default 1;
String text();
}

Слайд 5 пример ее использования:
@Description(title="title", version=2, text="text")
public class Clazz

пример ее использования:@Description(title=

{ /* */ }


Слайд 6 Maven
это инструмент для сборки Java проекта: компиляции, создания

Mavenэто инструмент для сборки Java проекта: компиляции, создания jar, создания дистрибутива программы, генерации документации

jar, создания дистрибутива программы, генерации документации


Слайд 7 Преимущества Maven:
Независимость от OS. Сборка проекта происходит в любой операционной

Преимущества Maven:Независимость от OS. Сборка проекта происходит в любой операционной системе. Файл проекта

системе. Файл проекта один и тот же.
Управление зависимостями. Редко какие

проекты пишутся без использования сторонних библиотек (зависимостей). Эти сторонние библиотеки зачастую тоже в свою очередь используют библиотеки разных версий. Мавен позволяет управлять такими сложными зависимостями. Что позволяет разрешать конфликты версий и в случае необходимости легко переходить на новые версии библиотек.
Возможна сборка из командной строки. Такое часто необходимо для автоматической сборки проекта на сервере (Continuous Integration).
Хорошая интеграция с средами разработки. Основные среды разработки на java легко открывают проекты которые собираются c помощью maven. При этом зачастую проект настраивать не нужно - он сразу готов к дальнейшей разработке. Как следствие - если с проектом работают в разных средах разработки, то maven удобный способ хранения настроек. Настроечный файл среды разработки и для сборки один и тот же - меньше дублирования данных и соответственно ошибок.
Декларативное описание проекта.

Слайд 8 Вся структура проекта описывается в файле: pom.xml  (POM – Project

Вся структура проекта описывается в файле: pom.xml  (POM – Project Object Model), который

Object Model), который должен находиться в корневой папке проекта. 
Ключевым

понятием Maven является артефакт — это, по сути, любая библиотека, хранящаяся в репозитории (месте хранения). Это может быть какая-то зависимость или плагин. 
Зависимости — это те библиотеки, которые непосредственно используются в вашем проекте для компиляции кода или его тестирования.
Плагины используются самим Maven'ом при сборке проекта или для каких-то других целей (деплоймент, создание файлов проекта для Eclipse и др.). 
Архетип — это некая стандартная компоновка файлов и каталогов в проектах различного рода (веб, swing-проекты и прочие). Другими словами, Maven знает, как обычно строятся проекты и в соответствии с архетипом создает структуру каталогов.


Слайд 9 Жизненный цикл
validate — проверяет корректность метаинформации о проекте
compile — компилирует

Жизненный цикл validate — проверяет корректность метаинформации о проектеcompile — компилирует исходникиtest — прогоняет

исходники
test — прогоняет тесты классов из предыдущего шага
package — упаковывает скомпилированые

классы в удобноперемещаемый формат (jar или war, к примеру)
integration-test — отправляет упаковынные классы в среду интеграционного тестирования и прогоняет тесты
verify — проверяет корректность пакета и удовлетворение требованиям качества
install — добавляет пакет в локальный репозиторий, откуда он будет доступен для использования как зависимость в других проектах
deploy — отправляет пакет на удаленный production сервер, откуда другие разработчики его могут получить и использовать


Слайд 10 чтобы подключить Spring Framework необходимо определить следующую зависимость: 

   
   org.springframework
      spring
      2.5.5
  


чтобы подключить Spring Framework необходимо определить следующую зависимость:       org.springframework      spring      2.5.5  

Слайд 11 Object Relational Mapping (ORM) Объектно-реляционное отображение

Object Relational Mapping (ORM) Объектно-реляционное отображение

Слайд 12 Взаимодействие между типами баз данных и подходами доступа

Взаимодействие между типами баз данных и подходами доступа к данным

к данным


Слайд 13 Примеры реляционной и объектной модели
Реляционная модель
Объектная модель предметной

Примеры реляционной и объектной моделиРеляционная модельОбъектная модель предметной областиCATALOG_ITEM отображается на

области
CATALOG_ITEM отображается на иерархию классов в зависимости от значения

дискриминатора ITEM_TYPE

Слайд 14 Отображение таблицы CATALOG и класса Catalog.java
Класс Catalog

Отображение таблицы CATALOG и класса Catalog.java Класс Catalog связан с таблицей

связан с таблицей CATALOG
Первичный ключ – ID, связан

со свойством id (функции getId()/setId())
Для генерации значений первичного ключа ID используется sequence SEQ_ID
Атрибут NAME связан со свойством name (функции getName()/setName())
Объекты Catalog содержат список CatalogItem
связь “один-ко-многим” (@OneToMany),
обязательная (nullable=false)
Внешний ключ, определяющий связь – CATALOG_ID
Список CatalogItem загружаются по-требованию (FetchType.LAZY)
При сохранении объекта Catalog автоматически сохраняются все его items (CascadeType.ALL)

Слайд 15 Работа с Hibernate API
Работая с данными в

Работа с Hibernate API Работая с данными в объектно-ориентированном языке, мы

объектно-ориентированном языке, мы работаем с объектами, заполняя и считывая

значения полей, создавая новые или изменяя существующие объекты, определяя зависимости между объектами
При операции save() мы передаем объект типа Catalog, который сохраняется в базу данных по описанным правилам отображения. В том числе сохраняются и все зависимые объекты (CatalogItem)
Составляя запросы к базе данных, мы уже указываем не столбцы таблицы, а свойства объектов

Слайд 16 Протокол команд SQL
Oracle
Hibernate: select SEQ_ID.nextval from dual
Hibernate: select

Протокол команд SQLOracleHibernate: select SEQ_ID.nextval from dualHibernate: select SEQ_ID.nextval from dualHibernate:

SEQ_ID.nextval from dual
Hibernate: select SEQ_ID.nextval from dual
Hibernate: select SEQ_ID.nextval

from dual
Hibernate: select SEQ_ID.nextval from dual
Hibernate: insert into CATALOG (NAME, ID) values (?, ?)
Hibernate: insert into AUTHOR (NAME, BIRTHDATE, id) values (?, ?, ?)
Hibernate: insert into CATALOG_ITEM (NAME, AUTHOR_ID, CATALOG_ID, ISBN, ITEM_TYPE, id) values (?, ?, ?, ?, 'BOOK', ?)
Hibernate: insert into AUTHOR (NAME, BIRTHDATE, id) values (?, ?, ?)
Hibernate: insert into CATALOG_ITEM (NAME, AUTHOR_ID, CATALOG_ID, GENRE, ITEM_TYPE, id) values (?, ?, ?, ?, 'MOVIE', ?)
Hibernate: update CATALOG_ITEM set CATALOG_ID=? where id=?
Hibernate: update CATALOG_ITEM set CATALOG_ID=? where id=?
Hibernate: select catalog0_.ID as ID0_, catalog0_.NAME as NAME0_ from CATALOG catalog0_

SQL Server
Hibernate: insert into CATALOG (NAME) values (?)
Hibernate: insert into AUTHOR (NAME, BIRTHDATE) values (?, ?)
Hibernate: insert into CATALOG_ITEM (NAME, AUTHOR_ID, CATALOG_ID, ISBN, ITEM_TYPE) values (?, ?, ?, ?, 'BOOK')
Hibernate: insert into AUTHOR (NAME, BIRTHDATE) values (?, ?)
Hibernate: insert into CATALOG_ITEM (NAME, AUTHOR_ID, CATALOG_ID, GENRE, ITEM_TYPE) values (?, ?, ?, ?, 'MOVIE')
Hibernate: update CATALOG_ITEM set CATALOG_ID=? where id=?
Hibernate: update CATALOG_ITEM set CATALOG_ID=? where id=?
Hibernate: select catalog0_.ID as ID0_, catalog0_.NAME as NAME0_ from CATALOG catalog0_

Слайд 17 Возможности ORM
Загрузка связанных объектов “по требованию” (lazy loading)
Обеспечение

Возможности ORMЗагрузка связанных объектов “по требованию” (lazy loading)Обеспечение пессимистической/оптимистической блокировокКэширование загруженных объектовSQL-подобные запросы по объектной модели

пессимистической/оптимистической блокировок
Кэширование загруженных объектов
SQL-подобные запросы по объектной модели



Слайд 18 Преимущества ORM
Нет необходимости писать рутинные insert/update/delete/select для CRUD

Преимущества ORMНет необходимости писать рутинные insert/update/delete/select для CRUD операцийУсловия связи между

операций
Условия связи между объектами (строками таблиц) указываются декларативно в

одном месте.
Возможность использовать полиморфные запросы для иерархий классов
Высокая степень независимости от конкретной СУБД


Слайд 19 Недостатки ORM
Возможны проблемы с производительностью для сложных запросов

Недостатки ORMВозможны проблемы с производительностью для сложных запросов на объектном SQL.Затрудняет

на объектном SQL.
Затрудняет использование специфических конструкций языка SQL конкретной

СУБД.

Слайд 20 Реализации ORM
Hibernate/NHibernate www.hibernate.org (Java / .NET 1.1,2.0)
Oracle® TopLink®

Реализации ORMHibernate/NHibernate www.hibernate.org (Java / .NET 1.1,2.0)Oracle® TopLink® (Java)iBatis framework (Java,

(Java)
iBatis framework (Java, .NET) http://ibatis.apache.org/
JPOX Java Data Objects (Java)

http://www.jpox.org






Слайд 21 Стандарты ORM
EJB 1.1 Entity Beans
Java Data Object (JDO)
JPOX
OpenAccess

Стандарты ORMEJB 1.1 Entity BeansJava Data Object (JDO)JPOXOpenAccess JDOEJB 3.0 Persistence APIHibernateOracle TopLink

JDO
EJB 3.0 Persistence API
Hibernate
Oracle TopLink




  • Имя файла: hibernate.pptx
  • Количество просмотров: 80
  • Количество скачиваний: 0