|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/kurs-java-orm-i-hibernate/
课程评论:没有评论
# Java ORM 与 Hibernate 深度解析课程总结 本课程(Java 研讨会 #16 - ORM 和 Hibernate)是一门时长 23 小时的综合性课程,专注于对象关系映射(ORM)和 Hibernate 框架。课程旨在教授学习者如何有效地使用 Hibernate,并提供从基础到高级的数据库操作知识。 **课程核心内容概览:** ## 一、 对象关系映射(ORM) * **ORM 概念:** 解释 ORM 的工作原理及其在项目中的应用。 * **优缺点:** 分析使用 ORM 的好处和潜在缺点,指导何时适合采用 ORM。 * **ORM vs JDBC:** 对比 ORM 方法与传统的 JDBC 方法。 ## 二、 Java Persistence API (JPA) * **JPA 介绍:** 定义 JPA 及其在 ORM 领域的重要性。 * **JPA 组成:** 详细介绍 JPA 的各个组成部分及其作用。 * **JPA 注解:** 学习并使用关键的 JPA 注解。 * **实体生命周期:** 理解实体在 JPA 中的整个生命周期。 * **JPA 异常:** 识别常见 JPA 异常并学习如何处理。 ## 三、 数据库数据组织 * **数据库模式:** 讲解数据库模式的概念及其组织方式。 * **数据库索引:** 介绍索引的应用及其带来的益处。 * **数据库视图:** 定义和说明数据库视图的用途。 ## 四、 Hibernate 入门 * **Hibernate 优势:** 阐述在项目中应用 Hibernate 所带来的好处和可能性。 * **Hibernate 组件:** 介绍 Hibernate 的主要组成部分。 * **配置:** 指导如何在项目中配置 Hibernate。 * **实体生命周期(Hibernate):** 理解实体在 Hibernate 中的生命周期过程。 * **数据库管理策略:** 探讨不同的数据库管理方法和策略。 ## 五、 Hibernate - 事务与 CRUD * **Hibernate 事务:** 学习如何在 Hibernate 中管理事务。 * **Session 接口与 CRUD 示例:** 通过实际示例,学习 `Session` 接口及其基本的 CRUD(创建、读取、更新、删除)操作。 * **笔记:** 对所学内容进行总结。 ## 六、 Hibernate - 关系映射 * **一对一关系:** 定义并提供示例。 * **一对多关系:** 定义并提供示例。 * **多对多关系:** 定义并提供示例。 * **FetchType:** 学习不同的数据获取类型。 * **级联操作:** 理解关系中的级联操作。 * **Orphan Removal:** 学习如何处理孤立(未关联)的实体。 ## 七、 Hibernate - JPQL 与 HQL * **JPQL 介绍:** 定义 JPQL 及其应用。 * **HQL 介绍:** 定义 HQL 及其应用。 * **HQL 操作:** 通过实际示例学习 HQL 的 `INSERT`, `UPDATE`, `DELETE`, `SELECT` 操作。 * **命名查询:** 学习如何使用命名查询。 * **FetchMode:** 了解数据获取模式。 * **N+1 查询问题:** 学习如何解决 N+1 查询问题。 * **实体与 equals()/hashCode():** 学习如何实现 `equals()` 和 `hashCode()` 方法。 * **原生查询:** 学习使用原生 SQL 查询。 ## 八、 Hibernate - Criteria API * **Criteria API 介绍:** 定义 Criteria API 及其应用。 * **单记录获取:** 通过实际示例学习获取单个记录。 * **Distinct, 排序, JOIN, 聚合函数:** 通过实际示例学习这些高级查询功能。 * **Criteria UPDATE/DELETE:** 学习使用 Criteria API 进行更新和删除操作。 ## 九、 Hibernate - 高级主题 * **Connection Pool (HikariCP):** 配置和应用 HikariCP 连接池。 * **Hibernate 缓存 (1LC & 2LC):** 学习一级和二级缓存的管理。 * **数据库锁定:** 了解数据库锁定技术。 ## 十、 测试与项目 * **测试:** 通过练习巩固所学知识。 * **项目:** 在实际项目中应用所学技能。 **技术栈与版本:** 本课程使用 **Java 17** 进行录制和测试。尽管课程侧重于 Hibernate 核心机制,但对 Java 17 的新特性有所提及,不过教学过程中会尽量使用简单结构,避免混杂如 sealed classes 等新特性,以突出 Hibernate 的机制本身。Hibernate 版本主要基于 **Hibernate 6**,旨在教授贯穿整个 Hibernate 使用生涯的基础机制。 **课程定位:** 这是 Zajavka 系列课程中的第 16 门,学员可以独立学习。 **课程目标:** 通过本课程,学员将掌握 ORM 和 Hibernate 的实用技能,能够高效地处理 Java 应用程序中的数据库操作。
23 godzinny kurs poświęcony ORM i Hibernate! W kursie dowiesz się, czym jest ORM i jak efektywnie wykorzystać framework Hibernate w swoim projekcie. Kurs ten oferuje obszerną dawkę wiedzy na temat pracy z bazami danych, od podstaw po zaawansowane zagadnienia.Tematyka WarsztatuORM (Object-Relational Mapping)Czym jest ORM: Zasady działania i zastosowanie ORM w projektach.Zalety i wady stosowania ORM: Kiedy i dlaczego warto korzystać z ORM, a kiedy lepiej unikać.ORM vs JDBC: Porównanie podejścia ORM z tradycyjnym JDBC.JPA (Java Persistence API)Czym jest JPA: Definicja i znaczenie JPA w kontekście ORM.Z czego składa się JPA: Elementy składowe JPA i ich rola.Adnotacje JPA: Wprowadzenie do kluczowych adnotacji JPA.Cykl życia encji: Przebieg życia encji w JPA.Wyjątki JPA: Najczęstsze wyjątki i jak sobie z nimi radzić.Organizacja danych w bazie danychSchematy bazodanowe: Czym są i jak je organizować.Indeksy bazodanowe: Zastosowanie i korzyści z indeksowania.Widoki bazodanowe: Definicja i zastosowanie widoków.Hibernate - IntroCo nam daje stosowanie Hibernate w projekcie?: Zalet i możliwości Hibernate.Składniki Hibernate: Główne komponenty Hibernate.Konfiguracja: Jak skonfigurować Hibernate w projekcie.Cykl życia encji w Hibernate: Zrozumienie procesu życia encji.Strategie zarządzania bazami danych: Różne podejścia i strategie.Hibernate - Transakcje i CRUDTransakcje w Hibernate: Zarządzanie transakcjami.Interfejs Session i prosty przykład CRUD: Praktyczne przykłady operacji CRUD.Notatki: Podsumowanie omawianych zagadnień.Hibernate - RelacjeRelacja one-to-one: Definicja i przykład.Relacja one-to-many: Definicja i przykład.Relacja many-to-many: Definicja i przykład.FetchType: Typy pobierania danych.Kaskady: Kaskadowe operacje na relacjach.Orphan Removal: Usuwanie osieroconych encji.Hibernate - JPQL oraz HQLCzym jest JPQL: Definicja i zastosowanie.Czym jest HQL: Definicja i zastosowanie.HQL - INSERT, UPDATE, DELETE, SELECT: Praktyczne przykłady.HQL - Named Query: Użycie zapytań nazwanych.FetchMode: Tryby pobierania danych.Problem n + 1 zapytań: Rozwiązywanie problemów.Encje vs metody equals() i hashCode(): Implementacja metod.Native Query: Użycie natywnych zapytań.Hibernate - Criteria APICzym jest Criteria API: Definicja i zastosowanie.Pobranie pojedynczego rekordu: Praktyczny przykład.Distinct, Sortowanie, JOIN, Funkcje agregujące: Praktyczne przykłady.Criteria UPDATE, DELETE: Praktyczne przykłady.Hibernate - Zaawansowane zagadnieniaConnection Pool - HikariCP: Konfiguracja i zastosowanie.Hibernate i cache - 1LC oraz 2LC: Zarządzanie pamięcią podręczną.Database locking: Techniki blokowania bazy danych.Test i ProjektTest: Zadania sprawdzające zdobytą wiedzę.Projekt: Praktyczne zastosowanie zdobytej wiedzy w projekcie.Ten warsztat został nagrany w Java 17. Testy w tym warsztacie również odnoszą się do Java 17. Wiesz już na tym etapie o nowszych mechanizmach wprowadzanych w Java, ale my tutaj będziemy skupiać się na Hibernate, a nie na nowościach w Javie. Nic nie stoi na przeszkodzie, żebyś wykorzystywał/-a wiedzę pozyskaną po warsztacie o nowszych wersjach Java, ale nam zależy na pokazaniu mechanizmów samego Hibernate, dlatego będziemy starać się stosować proste konstrukcje, a nie mieszać tutaj np. sealed classes.Jeżeli natomiast chodzi o Hibernate, to struktura warsztatu została przygotowana w ten sposób, że bazowe mechanizmy Hibernate zostaną przedstawione na podstawie Hibernate w wersji 6. W ramach tego warsztatu pokażemy mechanizmy, które będą towarzyszyć w trakcie Twojej całej przygody z Hibernate.Warsztat ten jest 16. warsztatem w ramach ścieżki Zajavka. Oczywiście możesz go realizować niezależnie od innych moich materiałów.Dołącz do mojego warsztatu i zyskaj praktyczne umiejętności w zakresie ORM i Hibernate, które pomogą Ci efektywnie pracować z bazami danych w aplikacjach Java!