02-Hibernate. Hibernate
-
Upload
roman-brovko -
Category
Education
-
view
436 -
download
0
Transcript of 02-Hibernate. Hibernate
![Page 1: 02-Hibernate. Hibernate](https://reader035.fdocument.pub/reader035/viewer/2022071715/58a7723f1a28ab99238b5e8d/html5/thumbnails/1.jpg)
HIBERNATE
![Page 2: 02-Hibernate. Hibernate](https://reader035.fdocument.pub/reader035/viewer/2022071715/58a7723f1a28ab99238b5e8d/html5/thumbnails/2.jpg)
Hibernate• Cлой (фреймворк) между БД и приложением
• Не нужно создавать «прямые» SQL запросы через JDBC
• Может применяться в любом типе приложения (desktop/web, Spring и пр.)
• Основная цель – работа с таблицами БД как с объектами
• Легче создавать правильный абстрактный уровень для приложения (применять принципы ООП)
• http://hibernate.org/
• Документация:• http://hibernate.org/orm/documentation
![Page 3: 02-Hibernate. Hibernate](https://reader035.fdocument.pub/reader035/viewer/2022071715/58a7723f1a28ab99238b5e8d/html5/thumbnails/3.jpg)
ГДЕ ЗДЕСЬ JDBC
• На низком уровне Hibernate выполняет SQL запросы через JDBC
• JDBC – обязательно нужно знать
![Page 4: 02-Hibernate. Hibernate](https://reader035.fdocument.pub/reader035/viewer/2022071715/58a7723f1a28ab99238b5e8d/html5/thumbnails/4.jpg)
Расширенная схема
![Page 5: 02-Hibernate. Hibernate](https://reader035.fdocument.pub/reader035/viewer/2022071715/58a7723f1a28ab99238b5e8d/html5/thumbnails/5.jpg)
Плюсы Минусы
• Более высокоуровневый (ООП-ориентированный)
код, без ручной работы с JDBC API
• Переносимость (перенос на другую БД в
основном требует небольших изменений)
• Много примеров и документации
• Работа со всеми популярными СУБД
• Работа с NoSQL решениями
• Интеграция с фреймворками, IDE
• Удобство (для тех, кто разобрался с основами)
• Можно не углубляться в SQL
• Множество настроек (транзакции, кеширование,
генерация таблиц и пр.)
• Обновления, улучшения
• В крупных проектах возможна потеря
производительности (тяжеловесность), при
неправильных настройках
• Дополнительно нужно изучать API для Hibernate и
JPA
• Сложность для новичков - множество настроек,
аннотаций, специфики
• Меньше контроля (доступа к БД на низком
уровне)
• Привязка к своему API (все меньше и меньше)
![Page 6: 02-Hibernate. Hibernate](https://reader035.fdocument.pub/reader035/viewer/2022071715/58a7723f1a28ab99238b5e8d/html5/thumbnails/6.jpg)
Hibernate API
• В ранних версиях Hibernate имел сильную привязку к своему API, из-за чего переход на другую
JPA реализацию проходил не так быстро
• В данный момент с каждой версией происходит уклон в сторону JPA API
HIBERNATE
JPA API + HIBERNATE API
![Page 7: 02-Hibernate. Hibernate](https://reader035.fdocument.pub/reader035/viewer/2022071715/58a7723f1a28ab99238b5e8d/html5/thumbnails/7.jpg)
Что нужно знать
• Обязательно:
• JDBC
• SQL
• ООП
• Желательно:
• XML
• Аннотации в Java
• Работа в какой-либо IDE
![Page 8: 02-Hibernate. Hibernate](https://reader035.fdocument.pub/reader035/viewer/2022071715/58a7723f1a28ab99238b5e8d/html5/thumbnails/8.jpg)
Домашнее задание
• Добавить в закладки:
• http://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#architecture
• Пройти раздел 1. Architecture
• * Используйте документацию для последней версии Hibernate (на данный момент)