2. Hibernate
• Cлой (фреймворк) между БД и приложением
• Не нужно создавать «прямые» SQL запросы через JDBC
• Может применяться в любом типе приложения (desktop/web,
Spring и пр.)
• Основная цель – работа с таблицами БД как с объектами
• Легче создавать правильный абстрактный уровень для
приложения (применять принципы ООП)
• http://hibernate.org/
• Документация:
• http://hibernate.org/orm/documentation
3. ГДЕ ЗДЕСЬ JDBC
• На низком уровне Hibernate выполняет SQL запросы через JDBC
• JDBC – обязательно нужно знать
5. Плюсы Минусы
• Более высокоуровневый (ООП-ориентированный)
код, без ручной работы с JDBC API
• Переносимость (перенос на другую БД в
основном требует небольших изменений)
• Много примеров и документации
• Работа со всеми популярными СУБД
• Работа с NoSQL решениями
• Интеграция с фреймворками, IDE
• Удобство (для тех, кто разобрался с основами)
• Можно не углубляться в SQL
• Множество настроек (транзакции, кеширование,
генерация таблиц и пр.)
• Обновления, улучшения
• В крупных проектах возможна потеря
производительности (тяжеловесность), при
неправильных настройках
• Дополнительно нужно изучать API для Hibernate и
JPA
• Сложность для новичков - множество настроек,
аннотаций, специфики
• Меньше контроля (доступа к БД на низком
уровне)
• Привязка к своему API (все меньше и меньше)
6. Hibernate API
• В ранних версиях Hibernate имел сильную привязку к своему API, из-за чего переход на другую
JPA реализацию проходил не так быстро
• В данный момент с каждой версией происходит уклон в сторону JPA API
HIBERNATE
JPA API + HIBERNATE API
7. Что нужно знать
• Обязательно:
• JDBC
• SQL
• ООП
• Желательно:
• XML
• Аннотации в Java
• Работа в какой-либо IDE
8. Домашнее задание
• Добавить в закладки:
• http://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#architecture
• Пройти раздел 1. Architecture
• * Используйте документацию для последней версии Hibernate (на данный момент)