最近我写了很多Hibernate教程。Hibernate 是目前市场上最好的Java ORM工具之一。因此,这篇文章就像是Hibernate教程和示例的所有文章的索引。您可以按顺序阅读这些Hibernate教程,从头开始学习Hibernate。我很可能会将更多的Hibernate教程添加到列表中,所以您可能想要将其添加到书签中,并偶尔检查一下。
休眠模式
- 1.[Hibernate 支持 JPA 注释,而且非常灵活。我们可以使用 XML、属性文件以及编程方式对其进行配置。本教程是开始使用 Hibernate 框架的好方法。本教程重点介绍了hibernate所需的不同配置,并提供了基于XML的简单映射和基于JPA注解的映射示例。您还将学习初始化 "SessionFactory "的不同方法以及 hibernate 框架的重要组件。
- 2.Hibernate 一对一映射** 大多数情况下,数据库表是相互关联的。关联有多种形式--一对一、一对多和多对多是广义上的关联,还可进一步分为单向映射和双向映射。本教程将指导你使用 XML 配置和 JPA 注释配置实现 Hibernate 一对一映射。
- 3.Hibernate 一对多映射** 简单地说,一对多映射是指一个表中的一条记录可以映射到另一个表中的多条记录。例如,在购物车系统中,我们有另一个表来记录项目。一个购物车可以有多个项目,所以这里就有了一多映射。在本教程中,你将学习如何使用基于 XML 的配置,然后使用 Hibernate 注释实现一对多映射。
- 4.Hibernate 多对多映射 多对多映射通常在数据库中使用连接表(Join Table)来实现,例如,我们可以使用 Cart 和 Item 表以及 Cart_Items 表来实现多对多映射。每个购物车都可以有多个项目,每个项目都可以是多个购物车的一部分,因此我们在这里实现了多对多映射。本教程将讲解有关 hibernate 多对多单向映射和双向映射的知识。
- 5.Hibernate查询语言(HQL) Hibernate框架自带一种强大的面向对象查询语言--Hibernate查询语言(HQL)。它与 SQL 非常相似,只是我们使用对象(Objects)而不是表名,这使得它更接近面向对象编程。本文将介绍 HQL 和 HQL 语言支持的不同子句。
- 6.Hibernate本地SQL查询 Hibernate提供了通过使用SQLQuery对象执行本地SQL查询的选项。当我们想执行 Hibernate API 不支持的数据库特定查询(如查询提示或 Oracle 数据库中的 CONNECT 关键字)时,这非常方便。
- 7.Hibernate命名查询 如果有大量的HQL或本地SQL查询,那么它们会导致代码混乱,因为所有的查询都会分散在整个项目中。这就是 Hibernate 提供命名查询的原因,我们可以在一个中心位置定义命名查询,并在代码的任何地方使用它们。我们可以为 HQL 和本地 SQL 创建命名查询。Hibernate 命名查询可以在 Hibernate 映射文件中使用 "query "或 "sql-query "元素定义,也可以通过使用 JPA 注释 @NamedQuery 和 @NamedNativeQuery 来定义。
- 8.Hibernate Criteria**Hibernate提供的Criteria API更面向对象,用于查询数据库并获取结果。我们不能使用 Criteria 运行更新或删除查询或任何 DDL 语句。它只能使用更面向对象的方法从数据库中获取结果。Criteria API 的一些常见用法是投影,我们可以用它来执行汇总函数,如 sum()、min()、max() 等,还可以用投影列表(ProjectionList)来只获取选定的列、对结果排序等。
- 9.9. Hibernate 一级缓存 如果使用得当,Hibernate 缓存对快速提高应用程序性能非常有用。缓存背后的理念是减少数据库查询次数,从而缩短应用程序的吞吐时间。Hibernate 一级缓存与会话对象相关联。Hibernate 一级缓存默认是启用的,无法禁用。不过,通过 Hibernate 提供的方法,我们可以从缓存中删除选定对象或完全清除缓存。会话中缓存的任何对象对其他会话都是不可见的,当会话关闭时,所有缓存对象也将丢失。
- 10.使用 EHCache 的 Hibernate 二级缓存** Hibernate 二级缓存提供者包括 EHCache 和 Infinispan,但 EHCache 更受欢迎,因为它易于集成并支持所有的 hibernate 缓存策略。本教程提供了一个将 EHCache 与 Hibernate 框架集成的完整示例。
- 11.Hibernate get vs load**Hibernate Session提供了不同的方法来从数据库中获取数据。其中两个是 get() 和 load()。这些方法还有很多重载方法,我们可以在不同情况下使用。乍一看,get() 和 load() 似乎很相似,因为它们都是从数据库中获取数据。不过,它们之间还是有一些区别的,本教程将通过示例代码来解释这些区别。
- 12.Hibernate 保存与持久化** Hibernate Session 是 java 应用程序与 hibernate 框架之间的接口。本教程介绍了保存和更新表中数据的会话重要方法--保存、保存或更新、持久化、更新和合并。
- 13.[Hibernate SessionFactory 是一个工厂类,我们通过它获取会话并执行数据库操作。Hibernate SessionFactory 提供了三种获取会话对象的方法:getCurrentSession()、openSession() 和 openStatelessSession()。本教程将通过示例代码逐一讲解。
- 14.Hibernate log4j 集成 Hibernate 4 使用 JBoss 日志,但 log4j 是最流行的日志框架。本教程简要介绍了如何将 log4j 日志与 Hibernate 框架集成。
- 15.Hibernate Tomcat JNDI DataSource 示例 * 大多数情况下,hibernate 框架都用于在 Tomcat 或其他 servlet 容器中运行的 Web 应用程序。Hibernate 可以使用容器中定义为 JNDI 资源的数据源,这是让 servlet 容器使用连接池处理数据库连接的首选方法。
- 16.Spring Hibernate集成** Spring是最常用的Java EE框架之一,而Hibernate是最流行的ORM框架。这就是为什么 Spring Hibernate 组合在企业应用程序中被大量使用的原因。本教程使用 Spring 4 并将其与 Hibernate 3 集成,然后更新同一项目以使用 Hibernate 4。
- 17.Spring MVC Hibernate 示例 * 本教程继续讲解如何将 Hibernate 与 Spring MVC 集成,并使用 Spring 声明式事务管理,而不是使用 Hibernate 事务管理。
- 18.Struts2 Hibernate集成示例 本教程讲解了通过使用ServletContextLister将Hibernate与任何Web应用程序集成的一般方法,示例中使用了Struts2与Hibernate,但在幕后集成时仅使用了Servlet技术。这与 Spring 集成不同,因为 Struts2 没有为 Hibernate 集成提供任何内置支持。
- 19.Hibernate 验证器实例** 数据验证是任何应用程序都不可或缺的一部分。它是一项横跨表现层、业务层和持久层的任务。因此,JSR-303 为 Java Bean 属性的验证提供了基于注解的标准。Hibernate Validator 支持 JSR-303,本教程通过一个简单的示例展示了其用法。
- 20.Hibernate Tools Eclipse Plugin 如果你参与过 Hibernate 项目,你一定对 Hibernate 映射和配置文件所需的大量属性非常熟悉。如果没有合适的工具来指导我们寻找正确的属性,就很难正确配置我们的应用程序。这时,** Hibernate Tools** Eclipse 插件就派上用场了,它是 Hibernate 项目的必备插件。
- 21.Hibernate面试问题*** 掌握Hibernate框架的知识是Java面试的加分项,这也是我写这篇文章的原因。它包含了与 Hibernate 框架相关的大部分重要问题及详细答案。在参加面试前,你应该仔细阅读这些内容,以充实自己的知识。
Hibernate 教程 - 常见错误修复
- 23.如何配置 hibernate.cfg.xml 以离线工作**
- 24.org.hibernate.AnnotationException:未指定实体类的标识符
- 25.org.hibernate.HibernateException: get is not valid without active transaction
- 26.org.hibernate.HibernateException: No CurrentSessionContext configured
- 27.希伯来程序未终止**
- 28.当未设置 "hibernate.dialect "时,访问 DialectResolutionInfo 不能为空***