69pao国产精品视频-久久精品一区二区二三区-精品国产精品亚洲一本大道-99国产综合一区久久

Hibernate 架構(gòu)

hibernate 架構(gòu)

hibernate 架構(gòu)是一個分層架構(gòu),作為數(shù)據(jù)訪問層,無需知道底層 api 。

hibernate 利用數(shù)據(jù)庫以及配置數(shù)據(jù)來為應(yīng)用程序提供持久性存儲服務(wù)。

下面是一個高層的 hibernate 應(yīng)用程序架構(gòu)視圖。

hibernate架構(gòu)

下面是一個詳細的 hibernate 應(yīng)用程序體系結(jié)構(gòu)視圖以及一些重要的類。

hibernate 架構(gòu)

hibernate 使用不同的現(xiàn)存 java api,比如 jdbc,java 事務(wù) api(jta),以及 java 命名和目錄界面(jndi)。

jdbc 提供了一個基本的抽象級別的通用關(guān)系數(shù)據(jù)庫的功能,hibernate 支持幾乎所有帶有 jdbc 驅(qū)動的數(shù)據(jù)庫。

jndi 和 jta 允許 hibernate 與 j2ee 應(yīng)用程序服務(wù)器相集成。

下面的部分簡要地描述了在 hibernate 應(yīng)用程序架構(gòu)所涉及的每一個類對象。

 

配置對象

配置對象是你在任何 hibernate 應(yīng)用程序中創(chuàng)造的第一個 hibernate 對象,并且經(jīng)常只在應(yīng)用程序初始化期間創(chuàng)造。它代表了 hibernate 所需一個配置或?qū)傩晕募?。配置對象提供了兩種基礎(chǔ)組件。

  • 數(shù)據(jù)庫連接: 由 hibernate 支持的一個或多個配置文件處理。這些文件是 hibernate.propertieshibernate.cfg.xml。
  • 類映射設(shè)置: 這個組件創(chuàng)造了 java 類和數(shù)據(jù)庫表格之間的聯(lián)系。

 

sessionfactory 對象

配置對象被用于創(chuàng)造一個 sessionfactory 對象,使用提供的配置文件為應(yīng)用程序依次配置 hibernate,并允許實例化一個會話對象。sessionfactory 是一個線程安全對象并由應(yīng)用程序所有的線程所使用。

sessionfactory 是一個重量級對象所以通常它都是在應(yīng)用程序啟動時創(chuàng)造然后留存為以后使用。每個數(shù)據(jù)庫需要一個 sessionfactory 對象使用一個單獨的配置文件。所以如果你使用多種數(shù)據(jù)庫那么你要創(chuàng)造多種 sessionfactory 對象。

 

session 對象

一個會話被用于與數(shù)據(jù)庫的物理連接。session 對象是輕量級的,并被設(shè)計為每次實例化都需要與數(shù)據(jù)庫的交互。持久對象通過 session 對象保存和檢索。

session 對象不應(yīng)該長時間保持開啟狀態(tài)因為它們通常情況下并非線程安全,并且它們應(yīng)該按照所需創(chuàng)造和銷毀。

 

transaction 對象

一個事務(wù)代表了與數(shù)據(jù)庫工作的一個單元并且大部分 rdbms 支持事務(wù)功能。在 hibernate 中事務(wù)由底層事務(wù)管理器和事務(wù)(來自 jdbc 或者 jta)處理。

這是一個選擇性對象,hibernate 應(yīng)用程序可能不選擇使用這個接口,而是在自己應(yīng)用程序代碼中管理事務(wù)。

 

query 對象

query 對象使用 sql 或者 hibernate 查詢語言(hql)字符串在數(shù)據(jù)庫中來檢索數(shù)據(jù)并創(chuàng)造對象。一個查詢的實例被用于連結(jié)查詢參數(shù),限制由查詢返回的結(jié)果數(shù)量,并最終執(zhí)行查詢。

 

criteria 對象

criteria 對象被用于創(chuàng)造和執(zhí)行面向規(guī)則查詢的對象來檢索對象。

下一節(jié):hibernate 環(huán)境

hibernate 教程

相關(guān)文章