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

Презентация: Hibernate
1 из 22
Ваша оценка презентации
Оцените презентацию по шкале от 1 до 5 баллов
  • 1
  • 2
  • 3
  • 4
  • 5
0.0
0 оценок

Комментарии

Нет комментариев для данной презентации

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


Добавить свой комментарий

Аннотация к презентации

"Hibernate" состоит из 22 слайдов: лучшая powerpoint презентация на эту тему находится здесь! Вам понравилось? Оцените материал! Загружена в 2017 году.

  • Формат
    pptx (powerpoint)
  • Количество слайдов
    22
  • Слова
    другое
  • Конспект
    Отсутствует

Содержание

  • Презентация: Hibernate
    Слайд 1

    Hibernate

  • Слайд 2

    Аннотации в Java (java annotation types)

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

  • Слайд 3

    Вот основные варианты использования аннтоаций:

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

  • Слайд 4

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

    public @interface Description { String title(); int version() default 1; String text(); }

  • Слайд 5

    пример ее использования:

    @Description(title="title", version=2, text="text") public class Clazz { /* */ }

  • Слайд 6

    Maven

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

  • Слайд 7

    Преимущества Maven:

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

  • Слайд 8

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

  • Слайд 9

    Жизненный цикл

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

  • Слайд 10

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

           org.springframework       spring       2.5.5   
  • Слайд 11

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

  • Слайд 12

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

  • Слайд 13

    Примеры реляционной и объектной модели

    Реляционная модель Объектная модель предметной области CATALOG_ITEM отображается на иерархию классов в зависимости от значения дискриминатора ITEM_TYPE

  • Слайд 14

    Отображение таблицы 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

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

  • Слайд 16

    Протокол команд SQL

    Oracle Hibernate: select 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: 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) Обеспечение пессимистической/оптимистической блокировок Кэширование загруженных объектов SQL-подобныезапросы по объектной модели

  • Слайд 18

    Преимущества ORM

    Нет необходимости писать рутинные insert/update/delete/select для CRUD операций Условия связи между объектами (строками таблиц) указываются декларативно в одном месте. Возможность использовать полиморфные запросы для иерархий классов Высокая степень независимости от конкретной СУБД

  • Слайд 19

    Недостатки ORM

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

  • Слайд 20

    Реализации ORM

    Hibernate/NHibernate www.hibernate.org (Java / .NET 1.1,2.0) Oracle® TopLink® (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 JDO EJB 3.0 Persistence API Hibernate Oracle TopLink

  • Слайд 22

    Литература и ссылки

    Мартин Фаулер “Архитектура корпоративных программных приложений”. М., “Вильямс”, 2004 http://en.wikipedia.org/wiki/Object-relational_mapping http://www.hibernate.org/hib_docs/reference/ru/html_single/

Посмотреть все слайды

Сообщить об ошибке