Фундаментальные основы Hibernate, которые применяются практически в любом Java проекте. Изучение Hibernate без знаний веб (только JavaSE). Обновлен: март 2019 г.
Пошаговое изучение с нуля
Каждый шаг вы будете повторять как в уроках, чтобы исключить недопонимание и не наступать на грабли.
Минимальные требования
Курс подойдет даже для новичков, которые только начали изучение Java и хотят научиться работать в Hibernate.
Современные инструменты
Вы будете использовать самые популярные инструменты, которые применяются в профессиональных Java проектах.
Одна из главных проблем новичков заключается в том, что они пытаются изучить Hibernate сразу вместе с другими технологиями (веб, javafx и пр.) и в конечном итоге путаются что к чему.
Самый простой и правильный вариант - изучать его отдельно от всего. А потом уже совмещать с другими технологиями.
Даже, если вы не знаете веб разработку или JavaFX/Swing - вы все равно можете научиться работать с Hibernate.
Этот курс позволит вам без знаний других фреймворков - научиться использовать Hibernate в своих проектах.
Что такое Hibernate
Hibernate - один из самых популярных Java -фреймворков. На протяжении многих лет его используют как новички, так и профи.
Скорее всего вы уже знакомы с этим фреймворком, потому что он используется практически в любом среднем или крупном Java приложении. Поэтому знания Hibernate часто по-умолчанию требуются при приеме на работу.
Главная его цель - создание объектного слоя между вашим кодом и БД. Вы сможете работать с таблицами как с объектами.
Как показывает опыт - многие новички пропускают элементарные основы Hibernate/JPA, из-за чего изучение практики проходит медленнее.Поэтому лучше не бежать впереди паровоза и выделить полчаса времени, чтобы понять основные принципы Hibernate/JPA и больше на них не отвлекаться:
Обязательно посмотрите вводные уроки, чтобы получше понять смысл использования Hibernate.
Какие инструменты будете использовать
Даже если вы новичок - вам все равно сразу нужно приучаться работать с правильными инструментами, чтобы ускорить разработки приложений.
Для работы с курсом Hibernate вы будете использовать среду разработки IntelliJ IDEA, сборщик проекта Gradle и сам Hibernate.
IntelliJ IDEA
Вся разработка будет вестись в этой IDE, которая является в данный момент самой популярной средой для новичков и профессионалов Java. Вы будете использовать версию Ultimate (можно триальную).
Gradle
Универсальный сборщик, который позволит вам подключать все нужные зависимости Hibernate, настраивать проект и многое другое. Если вы не работали с ним ранее - вы научитесь основным действиям.
MySQL (Workbench)
Все таблицы будут находиться в этой СУБД, структура (дамп) будет предоставлена вам в готовом виде. Визуальный редактор - MySQL Workbench
Hibernate
Основной фреймворк, с которым идет работа в курсе. Нужен для создания объектного слоя между кодом и БД.
В чем основное отличие этого курса?
Вам необязательно уметь разрабатывать веб приложения или использовать JavaFX/Swing. Вы сможете научиться использовать Hibernate с минимальными знаниями. Т.е. порог вхождения очень низкий и не требует высокой подготовки.
После изучения основ Hibernate - вы сможете применять их в любом типе приложений.
Какие минимальные знания требуются
Для того, чтобы успешно пройти курс - вам нужны самые минимальные знания - уметь создавать простые проекты на Java, работать в любой СУБД.
ООП - понимание основных принципов разработки приложения на Java
Опыт в СУБД - создание и связывание таблиц, внешний и первичный ключи, элементарные действия - чтобы для вас не было сюрпризом, как создаются простые таблицы в СУБД.
JDBC - SQL - знать желательно, чтобы понимать что происходит при использовании Hibernate. Хотя есть возможность создавать запросы в Hibernate и без знаний JDBC-SQL.
XML - настройки Hibernate могут храниться в специальных XML файлах, поэтому вам нужно понимать их структуру. Если раньше на работали с XML - можете быстренько его изучить за один вечер.
Чему вы научитесь
Вы получите фундаментальные знания по Hibernate/JPA, которые затем можно будет применять в любом типе проектов (веб, десктоп).
Без этих знаний идти дальше смысла нет, т.к. у вас не будет фундамента.
Вы будете выполнять последовательно несложные шаги и получать результат, т.к. курс рассчитан как раз для новичков.
Основные действия, которые вы научитесь выполнять для проектов:
- 1. Создание проекта и подключение зависимостей
- 2. Добавление параметров для работы Hibernate
- 3. Mapping классов для связывания таблиц БД c Java кодом
- 4. Создание нужных SQL запросов с данными
- 5. Обработка результатов SQL запросов
- 6. Предоставление результатов в нужном формате для GUI
Эти шаги выполняются практически в любом Hibernate приложении - вы пройдете их последовательно с самого начала.
Также в дополнение - вы узнаете некоторые более продвинутые "фишки", которые профессионалы применяют в крупных проектах.
Естественно, мы не сможем пройти досконально каждый раздел Hibernate, потому что это невозможно.
Сам фреймворк просто огромный, но вы можете получить прочный фундамент, а после этого уже изучать детали по мере необходимости.
Если вы не новичок?
Если у вас уже есть какие-либо знания по Hibernate и вы с ним уже до этого работали - данный курс также будет вам полезен, чтобы систематизировать и разложить все знания по полочкам.
Часто можно встретить разработчиков, которые по частям нахватались обрывочных знаний, но полной картины в голове так и не осталось.
Поэтому для таких людей этот курс поможет укрепить фундамент и двигаться дальше, в сторону более сложных вещей.
Основные темы
Главные понятия ORM-JPA
Фундаментальное понимание главных принципов при использовании ORM-JPA.
Основы Hibernate
Архитектура фреймворка, встраивание в приложение и схема взаимодействия
Работа с документацией
Как правильно новичку изучать документацию, чтобы не запутаться.
Спецификация JPA
Работа со спецификацией JPA в дополнение к документации.
Шаблонный проект
Создание шаблонного проекта с подключением всех нужных библиотек.
Использование Gradle
Применение Gradle вместе с Hibernate для сборки проекта и подключения библиотек
Настройки Hibernate
Основные и дополнительные настройки для правильной работы Hibernate
Системные объекты
Внутренние объекты Hibernate, их взаимодействие и инициализация
Работа с сессией
Получение сессии для связи с БД, API объекта сессии, основные возможности
Маппинг объектов
Связывание Java классов с таблицами для реализации маппинга.
Получение данных
Основные возможности для получения данных из БД, плюсы-минусы, отличия
Использование Criteria
Как использовать объектное Criteria API для создания запросов в БД.
Работа с HQL
Создание универсальных SQL запроcов с помощью языка запросов HQL
Получение коллекции
Как правильно получать типизированные коллекции данных из БД
Поиск по полям
Правильное добавление условий в запросы в Criteria API и HQL
Получение объектов
Получение уникальных объектов по различным идентификаторам.
Реализация CRUD
Создание самых частых операций - добавление, удаление, обновление
Генератор ID
Возможности для создания и генерации первичных идентификаторов.
Способы удаления
API для удаления одиночных объектов, пакетное удаление данных.
Связи между объектами
Внутренние объекты и коллекции для связи таблиц через внешний ключ.
Аннотации Hibernate/JPA
Основные аннотации для фреймворков, их применение и описание.
Правила именования
Основные правила именования, автоматическая подстановка
Состояние объектов
Фазы или состояния объектов при манипуляции с ними в сессии.
Выборка полей
Выборочное получение нужных полей из любого объекта.
Генерация entity
Варианты автоматического создания entity-классов на основе БД.
Встраивание полей
Создание модульных классов для встраивания в другие entity объекты.
Работа с параметрами
Создание параметров и их добавление в запросы, условия, выборки.
Метамодель
Генерация специальное метамодели для правильной типизации полей.
Логирование
Получение расширенной информации при работе Hibernate и SQL.
Портирование на другую БД
Проверка работы Hibernate при смене БД для проекта, основные нюансы.
Конвертеры
Конвертация данных атрибутов для установки правильного типа.
Композитные идентификаторы
Более сложный вариант создания уникальных ключей для каждой записи.
Наследование entity
Избегание дублирования кода для entity классов с помощью наследования.
Фильтрация, упорядочивание
Встроенная фильтрация внутренних коллекций объектов.
Оптимизация
На что желательно обращать внимание при работе с Hibernate.
Мониторинг
Наблюдение за основными действиями и процессами Hibernate.
Сравнение JPA с Hibernate
Как Hibernate использует JPA и его основные отличия, преимущества.
Перевод проекта на JPA
Какие действия произвести для перевода проекта на JPA реализацию.
Интеграция Hibernate
Как связывать Hibernate с другими фреймворками и технологиями.
Продвинутые материалы
Помимо основных базовых тем, вы также пройдете некоторые продвинутые методики. В первую очередь это касается правильно загрузки данных (из-за чего крупные приложения часто теряют в производительности).
Вы узнаете новые возможности Hibernate/JPA, которые появились в последних версиях фреймворка.
Чтобы правильно использовать Hibernate в крупных приложениях - вы обязательно должны уметь работать с оптимизацией загрузки данных.
- Оптимизация загрузки коллекций и объектов
- Продвинутые способы работы с Entity
- Сравнение реализаций для JPA и Hibernate
- Анализ статистики, производительности Hibernate
- Декомпозиция полей и наследование
- Проблемы Hibernate и способы решения
Я выучил основы Hibernate, что дальше?
После того, как вы научитесь работать с Hibernate и выполнять основные действия - вы сможете легко интегрироваться с другими технологиями. Об этом будет отдельный урок в курсе.
Самое главное - получить прочный фундамент по Hibernate, чтобы далее на него не отвлекаться.
Вы будете иметь преимущество перед другими новичками - при изучении другого фреймворка, например Spring + Hibernate, вы будете фокусироваться только на Spring.
Последовательность - залог успеха в любом деле.
Будет ли JPA?
Основная тема уроков - Hibernate, поэтому упор будет делаться именно на него. Но т.к. Hibernate основан на JPA - мы в любом случае будем проходить и его, сравнивать с Hibernate и многое другое.
Получается, что помимо основных тем Hibernate, вы параллельно изучите многие темы из JPA.
Также, у вас будет отдельный урок, где вы пошагово переведете проект с Hibernate на "чистый" JPA.
БОНУСНЫЕ УРОКИ
"Подключение Hibernate к Адресной книге"
В бонусных уроках используется готовое приложение на графической технологии JavaFX: Адресная книга (из другого курса). Вы будете подключать Hibernate и дорабатывать функционал.
Т.е. здесь нет разбора как мы с нуля создали это приложение - весь UI уже будет в готовом виде (но без соединения с БД).
Вы на практике подключите БД + Hibernate к готовому проекту и полностью переведете его на использование фреймворка.
- Создание структуры таблиц
- Подключение Hibernate к реальному проекту
- Использование UI + Hibernate
- Создание SQL запросов
- Обработка результатов
- Работа с БД
- и многое другое...
author - ���������