最近我寫了很多關於 Hibernate 的教程。Hibernate 是當前市場上最好的 Java ORM 工具之一。因此,這篇文章就像是所有 Hibernate 教程和示例的索引。您可以按順序閱讀這些 Hibernate 教程,從頭開始學習 Hibernate。很可能我會不斷添加更多的 Hibernate 教程到列表中,所以您可能想要收藏它,定期檢查一下。
Hibernate 教程
- Hibernate 初學者教程 Hibernate 支持 JPA 註釋,非常靈活。我們可以使用 XML、屬性文件以及編程方式配置它。這個教程是讓您入門 Hibernate 框架的好方法。本教程專注於 Hibernate 所需的不同配置,並提供基於簡單的 XML 映射和基於 JPA 註釋的映射的示例。您還將學習初始化
SessionFactory
以及 Hibernate 框架的重要組件的不同方法。 - 使用Hibernate進行一對一映射 大多數情況下,數據庫表彼此關聯。關聯有許多形式 – 一對一、一對多和多對多是在廣泛層面上的,可以進一步劃分為單向和雙向映射。本教程將引導您通過使用XML配置和使用JPA註解配置來實現Hibernate一對一映射。
- 使用Hibernate進行一對多映射 簡單來說,一對多映射意味著一個表中的一行可以映射到另一個表中的多行。例如,想象一下一個購物車系統,我們有另一個項目表。一個購物車可以有多個項目,所以這裡我們有一對多映射。在本教程中,您將學習如何使用基於XML的配置實現一對多映射,然後使用Hibernate註解。
- 使用Hibernate進行多對多映射 多對多映射通常在數據庫中使用一個聯接表來實現,例如我們可以有購物車和項目表以及多對多映射的Cart_Items表。每個購物車可以有多個項目,每個項目可以是多個購物車的一部分,所以這裡我們有一對多映射。本教程解釋了關於Hibernate多對多單向和雙向映射的相關內容。
- Hibernate查詢語言(HQL) Hibernate框架配備了一個強大的面向對象查詢語言 – Hibernate查詢語言(HQL)。它與SQL非常相似,只是我們使用對象代替表名,這使得它更貼近面向對象的編程。本文介紹了HQL以及HQL語言支持的不同子句。
- Hibernate本地SQL查詢 Hibernate提供了通過SQLQuery對象執行本地SQL查詢的選項。當我們想要執行Hibernate API不支持的特定於數據庫的查詢時,這是非常方便的,例如查詢提示或Oracle數據庫中的CONNECT關鍵字。
- Hibernate命名查詢 如果有大量的HQL或本地SQL查詢,它們將導致代碼混亂,因為所有查詢將分散在整個項目中。這就是為什麼Hibernate提供了命名查詢,我們可以在一個中央位置定義它們,並在代碼的任何地方使用它們。我們可以為HQL和本地SQL都創建命名查詢。使用Hibernate映射文件可以使用
query
或sql-query
元素定義Hibernate命名查詢,或者通過JPA注釋@NamedQuery和@NamedNativeQuery進行定義。 - Hibernate Criteria Hibernate 提供了更面向对象的 Criteria API,用于查询数据库并获取结果。我们不能使用 Criteria 运行更新或删除查询或任何 DDL 语句。它仅用于使用更面向对象的方法从数据库中获取结果。Criteria API 的一些常见用法包括投影,我们可以用于聚合函数,如sum(),min(),max()等,ProjectionList 仅用于获取选定的列,排序结果等。
- Hibernate 第一级缓存 如果使用正确,Hibernate 缓存可以在获得快速应用程序性能方面非常有用。缓存背后的想法是减少数据库查询的数量,从而减少应用程序的吞吐时间。Hibernate 第一级缓存与 Session 对象关联。Hibernate 第一级缓存默认启用,没有办法禁用它。但是,Hibernate 提供了方法,通过这些方法我们可以从缓存中删除选定的对象或完全清除缓存。在会话中缓存的任何对象都不会对其他会话可见,并且当会话关闭时,所有缓存的对象也将丢失。
- 使用EHCache的Hibernate二级缓存 Hibernate二级缓存提供商包括EHCache和Infinispan,但EHCache更受欢迎,因为它易于集成并支持所有Hibernate缓存策略。本教程提供了一个完整的示例,介绍了如何将EHCache与Hibernate框架集成。
- Hibernate的get与load方法 Hibernate Session提供了从数据库中获取数据的不同方法。其中两种方法是get()和load()。还有许多重载方法,我们可以在不同的情况下使用。乍一看,get()和load()似乎相似,因为它们都从数据库中获取数据。但是它们之间有一些差异,本教程通过示例代码对此进行了解释。
- Hibernate的save与persist方法 Hibernate Session是Java应用程序和Hibernate框架之间的接口。本教程解释了Session中用于保存和更新表中数据的重要方法,包括save、saveOrUpdate、persist、update和merge。
- Hibernate openSession vs getCurrentSession Hibernate SessionFactory 是我們獲取 Session 並執行數據庫操作的工廠類別。Hibernate SessionFactory 通過三種方法提供了獲取 Session 對象的方式 – getCurrentSession()、openSession() 和 openStatelessSession()。本教程通過示例代碼解釋了每種方法。
- Hibernate log4j 整合 Hibernate 4 使用 JBoss logging,但 log4j 是最流行的日誌框架。快速教程解釋了如何將 log4j 日誌整合到 Hibernate 框架中。
- Hibernate Tomcat JNDI DataSource 示例 大多數情況下,Hibernate 框架用於在 Tomcat 或其他 servlet 容器中運行的 Web 應用程序。Hibernate 可以使用在容器中定義的 JNDI 資源作為數據庫連接,這是使用連接池由 servlet 容器處理數據庫連接的首選方法。
- Spring Hibernate 整合 Spring 是最常用的 Java EE 框架之一,Hibernate 是最流行的 ORM 框架。這就是為什麼在企業應用程序中經常使用 Spring Hibernate 組合的原因。本教程使用 Spring 4,並將其與 Hibernate 3 整合,然後將同一項目升級為使用 Hibernate 4。
- Spring MVC Hibernate Example 本教程向前推进,解释了如何将Hibernate与Spring MVC集成,并使用Spring声明性事务管理,而不是使用Hibernate事务管理。
- Struts2 Hibernate Integration Example 本教程解释了通过使用ServletContextLister将Hibernate集成到任何Web应用程序的一般方法,示例是使用Struts2与Hibernate,但在幕后,集成仅使用Servlet技术完成。这与Spring集成不同,因为Struts2不提供任何内置支持来集成Hibernate。
- Hibernate Validator Example 数据验证是任何应用程序的一个组成部分。这是一个横切任务,发生在表示层、业务层以及持久层。这就是为什么JSR-303提供了基于注解的标准,用于为Java Bean属性应用验证。Hibernate Validator支持JSR-303,本教程展示了它在一个简单示例中的使用。
- Hibernate Tools Eclipse Plugin如果您曾经在Hibernate项目上工作过,那么您一定熟悉我们在Hibernate映射和配置文件中需要的许多属性。如果没有任何可以指导我们查找正确属性的合适工具,那么正确配置我们的应用程序将变得非常困难。这就是Hibernate Tools Eclipse插件派上用场的时候,对于Hibernate项目来说,这是一个必备插件。
- Hibernate面试题对Hibernate框架有良好的了解是Java面试的一个加分项,这就是我写这篇文章的原因。它包含了大部分与Hibernate框架相关的重要问题,并提供了详细的答案。在面试之前,您应该阅读这些问题,以巩固您的知识。
Hibernate教程 – 常见错误修复
Source:
https://www.digitalocean.com/community/tutorials/hibernate-tutorial