Hibernate 框架理解

忘塵天外天發表於2017-10-31

  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註釋,則屬性名稱將用作列名,預設情況下。

 

相關文章