1. 程式人生 > >Hibernate 框架理解

Hibernate 框架理解

pin persist 編寫 映射 一個 無需 單位 hiberna 包裝

  Hibernate框架簡化了java應用程序與數據庫交互的開發。Hibernate是一個開源,輕量級的ORM(對象關系映射)工具。

  ORM工具簡化瀏覽數據的創建,數據處理和數據訪問。它是將對象映射到數據庫中存儲的數據(表)的編程技術。

  ORM工具內部使用JDBC API與數據庫進行交互。

  Hibernate框架的優點:

  • 開源和輕量級:Hibernate看見是根據LGPL許可證和輕量級的開源工具。
  • 快速性能:Hibernate框架的性能很快,因為緩存在Hibernate框架內部使用。Hibernate框架中有兩種類型的緩存:一級緩存和二級緩存。一級緩存默認是啟用的。
  • 數據庫獨立查詢:HQL(Hibernate查詢語言)是面向對象的SQL版本。它生成數據庫獨立查詢。所以不需要編寫數據庫特定的查詢語句。在 Hibernate之前,如果項目修改了數據庫,需要更改SQL查詢,從而導致維護變得復雜。
  • 自動創建表:Hibernate框架提供了自動創建數據庫表的功能。因此,無需手動在數據庫中創建表。
  • 簡化復雜連接:在Hibernate框架中可輕松獲取多個表中的數據。
  • 提供查詢統計和數據庫狀態:Hibernate支持查詢緩存,並提供有關查詢和數據庫狀態的統計信息。

Hibernate架構包括許多對象持久對象,會話工廠、事物工廠、連接工廠、會話事務等。Hibernate架構中可分為4層Java應用層、hibernate框架層、反手api層和數據庫層

  Application ------Presistent Object -----HIBERNATE Mapping File、Configuration File --Database

  Presistent Object部分包括:SessionFactory、Session、Transaction Factory、Transaction、Connection Provider。

  Hibernate框架可以使用許多對象會話工廠,會話、事務等以及現有的Java API,如JDBC(Java數據庫連接)、JTA(Java事務API)和JNDI(Java命名目錄接口)。

  要創建一個hibernate應用程序,需要知道Hibernate架構的元素。

  會話工廠(SessionFactory)

  SessionFactory是ConnectionProvider的會話和客戶端工廠。它擁有數據的二級緩存(可選)。org.hibernate.SessionFactory接口提供了工廠方法來獲取Session的對象。

  會話(Session)

  Session對象提供應用程序和存儲在數據庫中的數據之間的接口。它是一個短生命周期的對象並包裝JDBC連接。它是事務、查詢和標準的工廠。它還提供了事務、查詢和標準的工廠方法。

  事務(Transaction)

  事務對象指定工作的原子單位,它是一個可選項。org.hibernate.Transaction接口提供事務管理的方法。

  連接提供者(ConnectionProvider)

  它是一個JDBC連接工廠。它從DriverManager或DataSource抽象出來的應用程序。是一個可選事項。

  事務工廠(TransactionFactory),是一個可選項。

另外,可以使用註釋創建hibernate應用程序。有許多註釋可用於創建hibernate應用程序,如@Entity,@Id,@Table等。Hibernate註釋基於JPA2規範。並支持所有功能。所有的JPA註釋都在javax.persistence.*包中定義。Hibernate EntityManager實現由JPA規範定義的接口和生命周期。使用hibernate註釋的優勢是不需要創建映射(*.hbm.xml)文件直接創建對象關聯。

@Entity註釋將類標記為實體,放在類名上。

@Table註釋指定要關聯此實體類的數據庫的表名。放在類名上,格式@Table(name="表名")

如果不使用@Table註釋,hibernate將使用類名作為表名稱。默認情況。

@Id註釋標記實體的標識符。

@Column註釋指定此屬性或字段的列的詳細情況。如果位指定@Column註釋,則屬性名稱將用作列名,默認情況下。

Hibernate 框架理解