What you'll learn
- JPA
- Hibernate
- ORM对象关系映射
- SQL & HQL
- JDBC
- 关系型数据库
Requirements
- 了解Java基本开发,会JDBC基础
- 能够使用maven搭建项目
- 使用过Intellij IDEA
- 知道SQL, 会数据库基本操作
Description
Hibernate 作为ORM层一套完整的解决方案,提供非常丰富的功能和完善的优化机制.
学习Hibernate能使我们更好的理解Data Access数据访问层的架构设计,同时提高对底层架构的理解.
这套课程将会带你从认识Hibernate到实战中的一些运行,提高对ORM层的理解.
Section 1 : 课程基础
- ORM Layer & Hibernate Architecture ORM层介绍和Hibernate架构设计
- Dev Environment & Requirements 课程准备(开发环境配置)和基本要求
- JPA Demo 创建JPA简单项目
- Native Hibernate APIs and hbm.xml Demo
- Native Hibernate APIs and Annotation Demo
Section 2 : Native Hibernate APIs and hbm.xml Mapping
- Hibernate Session Helper 自定义Hibernate Session辅助类
- Component Mapping 组件映射
- Inheritance Mapping 继承映射
- Many-to-One Mapping 多对一映射
- One-To-Many Mapping 一对多映射
- Many-To-Many Mapping 多对多映射
Section 3 : Native Hibernate APIs and Annotation Mappings
- Component Mapping
- Inheritance Mapping
- Many-to-One Mapping
- One-To-Many Mapping
- Many-To-Many Mapping
对比使用注解和使用XML映射配置的查询方法,分析优缺点
Section 4 : Query Languages 不同的查询语言类型
- SQL (Native Queries) 原生查询语句
- HQL (Hibernate Query Language) Hibernate查询语言
- MutationQuery 为具名参数赋值,一般用于数据的更新
- CriteriaQuery 条件查询,等效于复杂的SQL
- NamedNativeQuery 具名原生查询
- NamedQuery 具名查询
- Query by Natural-id根据自然主键来查询
Section 5 : Hibernate 进阶开发
- Caching Level 1一级缓存
- Caching Level 2二级缓存
理解透彻hibernate中object对象的生命周期 ; 彻底理解
理解透彻hibernate性能优化方面做的设计
- Entity Name Exceptions 实体类的名称造成的异常
Who this course is for:
- 想学习Hibernate的同学
- 想进阶学习Hibernate的同学
- 想进一步理解JPA和ORM层框架的同学
Instructor
本科信息工程专业。硕士毕业于法国TOP工程师大学, 系统和网络安全专业。
现就职于一家法国顶尖金融软件公司, 担任Java软件工程师。曾工作于 Huawei 和 IBM France,在欧洲军工企业有过实习。
技术范围广泛,包括Linux系统开发,软件测试自动化,Java后端开发,Web网站开发,移动端开发,.Net桌面软件开发等。多年编程开发经验,熟悉各种语言,技术框架和后端技术,同时乐于分享。
Bachelor's Degree in Information Engineering. Graduated from TOP Engineering University in France with a master's degree, majoring in system and network security. Now working in a TOP French financial software company as a Java Software Engineer.
He used to work in Huawei and IBM, and had an internship in a European military technology company. He has more than 8 years of programming and development experience, familiar with various languages, technical frameworks and back-end technologies (including Linux system development, software test automation, Java back-end development, Web site development, mobile terminal development, .Net desktop software development, etc.). And he is willing to share.