02-Hibernate. Hibernate

8
HIBERNATE

Transcript of 02-Hibernate. Hibernate

Page 1: 02-Hibernate. Hibernate

HIBERNATE

Page 2: 02-Hibernate. Hibernate

Hibernate• Cлой (фреймворк) между БД и приложением

• Не нужно создавать «прямые» SQL запросы через JDBC

• Может применяться в любом типе приложения (desktop/web, Spring и пр.)

• Основная цель – работа с таблицами БД как с объектами

• Легче создавать правильный абстрактный уровень для приложения (применять принципы ООП)

• http://hibernate.org/

• Документация:• http://hibernate.org/orm/documentation

Page 3: 02-Hibernate. Hibernate

ГДЕ ЗДЕСЬ JDBC

• На низком уровне Hibernate выполняет SQL запросы через JDBC

• JDBC – обязательно нужно знать

Page 4: 02-Hibernate. Hibernate

Расширенная схема

Page 5: 02-Hibernate. Hibernate

Плюсы Минусы

• Более высокоуровневый (ООП-ориентированный)

код, без ручной работы с JDBC API

• Переносимость (перенос на другую БД в

основном требует небольших изменений)

• Много примеров и документации

• Работа со всеми популярными СУБД

• Работа с NoSQL решениями

• Интеграция с фреймворками, IDE

• Удобство (для тех, кто разобрался с основами)

• Можно не углубляться в SQL

• Множество настроек (транзакции, кеширование,

генерация таблиц и пр.)

• Обновления, улучшения

• В крупных проектах возможна потеря

производительности (тяжеловесность), при

неправильных настройках

• Дополнительно нужно изучать API для Hibernate и

JPA

• Сложность для новичков - множество настроек,

аннотаций, специфики

• Меньше контроля (доступа к БД на низком

уровне)

• Привязка к своему API (все меньше и меньше)

Page 6: 02-Hibernate. Hibernate

Hibernate API

• В ранних версиях Hibernate имел сильную привязку к своему API, из-за чего переход на другую

JPA реализацию проходил не так быстро

• В данный момент с каждой версией происходит уклон в сторону JPA API

HIBERNATE

JPA API + HIBERNATE API

Page 7: 02-Hibernate. Hibernate

Что нужно знать

• Обязательно:

• JDBC

• SQL

• ООП

• Желательно:

• XML

• Аннотации в Java

• Работа в какой-либо IDE

Page 8: 02-Hibernate. Hibernate

Домашнее задание

• Добавить в закладки:

• http://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#architecture

• Пройти раздел 1. Architecture

• * Используйте документацию для последней версии Hibernate (на данный момент)