Hibernate 初学者教程
已发表: 2022-09-26开源 Hibernate 是一个免费的 OOP Java 框架,用于 Web 应用程序,用于将面向对象的域模型与关系数据库进行映射。
可以使用 HQL 和 SQL 来查询数据库并启用健壮的对象关系映射。 但是,Java 中的 ORM 映射实现使用 Hibernate 进行了简化,从而显着降低了应用程序的复杂性,并且有利于对 SQL 有基本了解的人。
查看我们与软件开发相关的免费课程。
探索我们的软件开发免费课程
云计算基础 | 从零开始的 JavaScript 基础 | 数据结构和算法 |
区块链技术 | 初学者反应 | 核心 Java 基础 |
爪哇 | 适合初学者的 Node.js | 高级 JavaScript |
休眠的架构
Hibernate 配置通常存储在属性部分或 hibernate.cfg.xml 文件中。 搜索 Java 配置时,查找标有注解 @Configuration 的类。
要开始使用 Java 应用程序和数据库,请从会话工厂开始。 该对象表示应用程序的 Java 类型和 SQL 数据库之间的整个映射集合。
会话工厂
任何用户应用程序都可以通过联系会话工厂来请求会话对象。 会话工厂使用文件中包含的配置信息来创建会话对象。 不同时刻的应用程序和数据库交互都包含在一个会话中,一个会话类代表了这一点。
询问
应用程序可以使用查询语言在数据库中查询一个或多个存储项目。 Hibernate 提供了多种方法来查询数据库,包括 NamedQuery 和 Criteria API。
一级缓存
Hibernate Session对象在一级与数据库通信所使用的缓存称为一级缓存,也称为会话缓存。 它负责缓存当前会话中的项目。 从 Session 对象到数据库的每个请求都必须经过一级缓存或会话缓存才能到达数据库。 因此,必须注意一级缓存仍然可以被会话对象访问,直到它不再处于活动状态。
交易
事务允许建立数据一致性,并在出现任何问题时回滚。
持久对象
持久对象是传统的 Java 对象 (POJO),由 Hibernate 框架作为链接表中的行保存在数据库中。 Hibernate 配置文件要么配置这些对象,要么用 @Entity 注释标记它们。
二级缓存
二级缓存在多个会话中跟踪事物。 启用并提供缓存提供程序以使用二级缓存。 例如,EhCache 是许多应用程序中流行的二级缓存提供程序。
从世界顶级大学在线学习软件开发课程。 获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。
探索我们流行的软件工程课程
LJMU & IIITB 计算机科学硕士 | 加州理工学院 CTME 网络安全证书课程 |
全栈开发训练营 | 区块链中的 PG 程序 |
全栈开发中的执行 PG 计划 | |
在下面查看我们的所有课程 | |
软件工程课程 |
Hibernate 框架的主要特征
Hibernate 是一个 Java 域对象映射框架,旨在管理数据库表。 该框架使用 Java 对象而不是 SQL 语句简化了对数据库项的处理。 此外,处理事务管理、自动创建主键、管理数据库连接和相关实现有助于开发过程。
JPA 提供者 Hibernate 支持 Java Persistence API (JPA) 标准。 它是用于访问、存储和管理数据的标准的集合。 可以进一步利用 Java 对象的优势并将其与关系数据库实体连接起来,以确保完全支持 JPA。
高性能和可扩展性
虽然 Hibernate 可以在任何环境中发展,但它提供了广泛的性能增强功能,例如乐观锁定、延迟初始化和其他几种技术。
跟上很简单
由于 Hibernate 不需要自定义数据库结构或属性,因此管理起来很困难。 它在系统启动期间创建 SQL。 但是,与 JDBC 相比,它更易于维护。
AnnotationConfiguration、ServiceRegistryBuilder 等类在以前的 Hibernate 版本中已被迅速弃用。
急需的软件开发技能
JavaScript 课程 | 核心 Java 课程 | 数据结构课程 |
Node.js 课程 | SQL 课程 | 全栈开发课程 |
NFT 课程 | DevOps 课程 | 大数据课程 |
React.js 课程 | 网络安全课程 | 云计算课程 |
数据库设计课程 | Python 课程 | 加密货币课程 |
实体、平等和身份的概念
Hibernate 提供了额外的概念来比较对象或特征以满足精确的业务规则。 除了在 Java 核心中检查相等性的现有知识之外,Hibernate 概念对于映射同样重要。
1. Hibernate Entity之间的关联映射
当两个实体以单向或双向的方式连接和引用时,使用 JPA 注释对 java 类进行注释并将它们变成永久实体。 然而,首先,在 Hibernate 实体之间生成引用之前掌握一些基本概念是至关重要的。
2.实体/持久性是两个不同的东西
Hibernate 映射的对象实例具有以下四种状态之一:暂时的、永久的、分离的或已删除的,具体取决于所讨论的对象实例状态。
3. Hibernate 和 JPA 中的级联类型
“CascadeType”属性用于实体中以启用级联和反向效果。 可通过 CascadeType 访问多种类型的级联选择。
阅读我们与软件开发相关的热门文章
如何在 Java 中实现数据抽象? | Java中的内部类是什么? | Java 标识符:定义、语法和示例 |
通过示例了解 OOPS 中的封装 | C 中的命令行参数解释 | 2022 年云计算的 10 大特点和特点 |
Java 中的多态性:概念、类型、特征和示例 | Java 中的包以及如何使用它们? | Git 初学者教程:从零开始学习 Git |
Hibernate 注释与映射的优势
在内联注释之前,创建 Hibernate 映射的唯一方法是 XML 文件。 尽管 Hibernate 和第三方项目的不同工具支持从 Java 源自动生成映射,但情况并非如此。
注释是最新定义的映射,但不是最有效的映射。
以下是 Hibernate(或更准确地说,JPA)注解的一些优点。
Hibernate Query Language [HQL] 是 Hibernate 的一种查询语言
HQL 与面向对象的查询语言 SQL 有相似之处。 它对永久对象而不是表和列的操作展示了强大查询语言的功能。
JPQL 或 Java 持久性查询语言是一个超集。 因此,一个有效的 JPQL 查询被认为是一个好的 HQL 查询。 但是,并非所有有效的 HQL 查询都是有效的 JPQL 查询,反之亦然。
查询休眠条件
使用 Criteria Query API,可以在 Java 中构建嵌套的结构化查询表达式,从而实现 HQL 或 SQL 等查询语言无法实现的编译时语法验证。 除了按示例查询 (QBE) 功能外,Criteria API 还包含其他功能。
例如,提供具有所需特征的对象实例而不是逐步解释搜索的组件可能会节省时间和精力。 它还包含用于投影和聚合的技术,例如 count 方法 ()。
Hibernate EhCache 的配置
ORM 框架提供的缓存功能允许用户拥有快速运行的 Web 应用程序,同时允许框架减少对单个事务在数据库中进行的查询。 缓存对用户和框架都有帮助。 Hibernate 在层次结构的第一级和第二级扩展缓存。
结论
Hibernate 软件被认为是适用于所有 Java 的功能强大的框架。 在这个 Hibernate 教程中,我们介绍了使用 Hibernate 的基础知识。
如果您想深入了解 Hibernate 框架并了解与 Spring 3 框架集成所产生的基本端到端应用程序流程,我们建议您加入upGrad 的全栈开发执行 PG 计划。
为期 13 个月的课程专为希望在计算机科学基础、软件开发运营、构建可扩展网站、后端 API 等方面打下基础的软件开发人员、IT 专业人员、工程师、分析师、技术支持专业人员和应届生而设计。
该计划包括 10 多种编程工具和语言、7 多种案例研究和项目、新兵训练营以及数据科学和机器学习的访问权限。
不要等待。 今天就预订座位!
如何在 Hibernate 框架中创建 SessionFactory?
任何用户应用程序都可以通过联系会话工厂来请求会话对象。 会话工厂使用文件中的配置信息来正确创建会话对象。
如何配置 Hibernate 连接池和缓存?
默认情况下,Hibernate 使用 JDBC 连接与数据库系统进行通信。 但是,创建这些连接是耗时、昂贵的,并且可能是 Hibernate 在典型使用场景中将执行的最昂贵的单个活动。 鉴于 JDBC 连接管理的高成本,您可以使用连接池,它可以提前建立关系。
什么是 Java 中的持久类?
任何遵循面向对象概念(如继承和多态)的类都可能是 Java 应用程序中的持久类。