hibernate 架構(gòu)
hibernate 架構(gòu)是一個(gè)分層架構(gòu),作為數(shù)據(jù)訪問層,無需知道底層 api 。
hibernate 利用數(shù)據(jù)庫以及配置數(shù)據(jù)來為應(yīng)用程序提供持久性存儲(chǔ)服務(wù)。
下面是一個(gè)高層的 hibernate 應(yīng)用程序架構(gòu)視圖。
下面是一個(gè)詳細(xì)的 hibernate 應(yīng)用程序體系結(jié)構(gòu)視圖以及一些重要的類。
hibernate 使用不同的現(xiàn)存 java api,比如 jdbc,java 事務(wù) api(jta),以及 java 命名和目錄界面(jndi)。
jdbc 提供了一個(gè)基本的抽象級(jí)別的通用關(guān)系數(shù)據(jù)庫的功能,hibernate 支持幾乎所有帶有 jdbc 驅(qū)動(dòng)的數(shù)據(jù)庫。
jndi 和 jta 允許 hibernate 與 j2ee 應(yīng)用程序服務(wù)器相集成。
下面的部分簡(jiǎn)要地描述了在 hibernate 應(yīng)用程序架構(gòu)所涉及的每一個(gè)類對(duì)象。
配置對(duì)象
配置對(duì)象是你在任何 hibernate 應(yīng)用程序中創(chuàng)造的第一個(gè) hibernate 對(duì)象,并且經(jīng)常只在應(yīng)用程序初始化期間創(chuàng)造。它代表了 hibernate 所需一個(gè)配置或?qū)傩晕募E渲脤?duì)象提供了兩種基礎(chǔ)組件。
- 數(shù)據(jù)庫連接: 由 hibernate 支持的一個(gè)或多個(gè)配置文件處理。這些文件是
hibernate.properties
和hibernate.cfg.xml
。 - 類映射設(shè)置: 這個(gè)組件創(chuàng)造了 java 類和數(shù)據(jù)庫表格之間的聯(lián)系。
sessionfactory 對(duì)象
配置對(duì)象被用于創(chuàng)造一個(gè) sessionfactory 對(duì)象,使用提供的配置文件為應(yīng)用程序依次配置 hibernate,并允許實(shí)例化一個(gè)會(huì)話對(duì)象。sessionfactory 是一個(gè)線程安全對(duì)象并由應(yīng)用程序所有的線程所使用。
sessionfactory 是一個(gè)重量級(jí)對(duì)象所以通常它都是在應(yīng)用程序啟動(dòng)時(shí)創(chuàng)造然后留存為以后使用。每個(gè)數(shù)據(jù)庫需要一個(gè) sessionfactory 對(duì)象使用一個(gè)單獨(dú)的配置文件。所以如果你使用多種數(shù)據(jù)庫那么你要?jiǎng)?chuàng)造多種 sessionfactory 對(duì)象。
session 對(duì)象
一個(gè)會(huì)話被用于與數(shù)據(jù)庫的物理連接。session 對(duì)象是輕量級(jí)的,并被設(shè)計(jì)為每次實(shí)例化都需要與數(shù)據(jù)庫的交互。持久對(duì)象通過 session 對(duì)象保存和檢索。
session 對(duì)象不應(yīng)該長(zhǎng)時(shí)間保持開啟狀態(tài)因?yàn)樗鼈兺ǔG闆r下并非線程安全,并且它們應(yīng)該按照所需創(chuàng)造和銷毀。
transaction 對(duì)象
一個(gè)事務(wù)代表了與數(shù)據(jù)庫工作的一個(gè)單元并且大部分 rdbms 支持事務(wù)功能。在 hibernate 中事務(wù)由底層事務(wù)管理器和事務(wù)(來自 jdbc 或者 jta)處理。
這是一個(gè)選擇性對(duì)象,hibernate 應(yīng)用程序可能不選擇使用這個(gè)接口,而是在自己應(yīng)用程序代碼中管理事務(wù)。
query 對(duì)象
query 對(duì)象使用 sql 或者 hibernate 查詢語言(hql)字符串在數(shù)據(jù)庫中來檢索數(shù)據(jù)并創(chuàng)造對(duì)象。一個(gè)查詢的實(shí)例被用于連結(jié)查詢參數(shù),限制由查詢返回的結(jié)果數(shù)量,并最終執(zhí)行查詢。
criteria 對(duì)象
criteria 對(duì)象被用于創(chuàng)造和執(zhí)行面向規(guī)則查詢的對(duì)象來檢索對(duì)象。
- JDBC 教程
- JDBC 驅(qū)動(dòng)類型
- JDBC 連接數(shù)據(jù)庫范例
- JDBC 連接數(shù)據(jù)庫步驟
- JDBC Statement, PreparedStatement 和 CallableStatement
- JDBC ResultSet 結(jié)果集
- JDBC Resultset 結(jié)果集范例
- JDBC 事務(wù)保存點(diǎn)范例
- Scala 教程
- Scala 簡(jiǎn)介
- Scala 類和對(duì)象
- Scala 文件 I/O
- Spring 教程
- Spring 模塊
- Spring 依賴注入
- Spring 自動(dòng)裝配
- Spring MVC教程
- Spring MVC表單標(biāo)簽庫
- Spring security