成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深入剖析Hibernate核心接口

開發 后端
這里介紹Hibernate核心接口,包括Transaction 接口是一個可選的API,你可以選擇不使用這個接口,取而代之的是Hibernate的設計者自己寫的底層事務處理代碼。

Hibernate有很多值得學習的地方,這里我們主要介紹Hibernate核心接口,包括介紹SessionFactory接口、Query和Criteria接口等方面。

Session 接口

對于Hibernate開發人員來說是一個最重要的接口。然而在Hibernate中,實例化的Session是一個輕量級的類,創建和銷毀它都不會占用很多資源。這在實際項目中確實很重要,因為在客戶程序中,可能會不斷地創建以及銷毀Session 對象,如果Session 的開銷太大,會給系統帶來不良影響。但值得注意的是Session 對象是非線程安全的,因此在你的設計中,***是一個 線程只創建一個Session對象。 在Hibernate的設計者的頭腦中,他們將session看作介于數據連接與事務管理一種中間接口。

我們可以將session想象成一個持久對象的緩沖區,Hibernate能檢測到這些持久對象的改變,并及時刷新數據庫。我們有時也稱Session是一個持久層管理器,因為它包含這一些持久層相關的操作, 諸如存儲持久對象至數據庫,以及從數據庫從獲得它們。請注意,Hibernate的session不同于JSP 應用中的HttpSession。當我們使用session這個術語時,我們指的Hibernate中的session,而我們以后會將HttpSesion 對象稱為用戶session。

SessionFactory接口

這里用到了一個設計模式――工廠模式,用戶程序從工廠類SessionFactory中取得Session 的 實例。令你感到奇怪的是SessionFactory并不是輕量級的!實際上它的設計者的意圖是讓它能在整個應用中共享。典型地來說,一個項目通常只需要一個SessionFactory就夠了,但是當你的項目要操作多個數據庫時,那你必須為每個數據庫指定一個SessionFactory。 SessionFactory在Hibernate中實際起到了一個緩沖區的作用,它緩沖了Hibernate自動生成的SQL 語句和一些其它的映射數據,還緩沖了一些將來有可能重復利用的數據。

Configuration接口

Configuration接口的作用是對Hibernate進行配置,以及對它進行啟動。在Hibernate的啟動 過程中,Configuration 類的實例首先定位映射文檔的位置,讀取這些配置,然后創建一個 SessionFactory對象。 雖然Configuration 接口在整個Hibernate項目中只扮演著一個很小的角色,但它是啟動Hibernate時你所遇到的每一個對象。

Transaction 接口

Transaction 接口是一個可選的API,你可以選擇不使用這個接口,取而代之的是Hibernate的設計者自己寫的底層事務處理代碼。 Transaction 接口是對實際事務實現的一個抽象,這些實現包 括JDBC的事務、JTA 中的UserTransaction、甚至可以是CORBA 事務。之所以這樣設計是能讓開發者能夠使用一個統一事務的操作界面,使得自己的項目可以在不同的環境和容器之間方便地移值。

Query和Criteria接口

Query接口讓你方便地對數據庫及持久對象進行查詢,它可以有兩種表達方式:HQL語言或本地數據庫的SQL語句。Query經常被用來綁定查詢參數、限制查詢記錄數量,并最終執行查詢操作。Criteria接口與Query接口非常類似,它允許你創建并執行面向對象的標準化查詢。值得注意的是Query接口也是輕量級的,它不能在Session之外使用。

Callback接口當一些有用的事件發生時――例如持久對象的載入、存儲、刪除時,Callback 接口會通知Hibernate去接收一個通知消息。一般而言,Callback接口在用戶程序中并不是必須的,但你要在你 的項目中創建審計日志時,你可能會用到它。

策略接口Hibernate與某些其它開源軟件不同的還有一點――高度的可擴展性,這通過它的內置策略機制 來實現。當你感覺到Hibernate的某些功能不足,或者有某些缺陷時,你可以開發一個自己的策略來替換它,而你所要做的僅僅只是繼承它的某個策略接口,然后實現你的新策略就可以了,以下是它的策略接口:
◆主鍵的生成 (IdentifierGenerator 接口)
◆本地SQL語言支持 (Dialect 抽象類)
◆緩沖機制 (Cache 和CacheProvider 接口)
◆JDBC 連接管理 (ConnectionProvider接口)
◆事務管理 (TransactionFactory, Transaction, 和 TransactionManagerLookup 接口)
◆ORM 策略 (ClassPersister 接口)
◆屬性訪問策略 (PropertyAccessor 接口)
◆代理對象的創建 (ProxyFactory接口)Hibernate為以上所列的機制分別創建了一個缺省的實現,因此如果你只是要增強它的某個策略 的功能的話,只需簡單地繼承這個類就可以了,沒有必要從頭開始寫代碼。以上介紹Hibernate核心接口。

【編輯推薦】

  1. Hibernate類庫簡單描述
  2. 淺析Hibernate延遲加載
  3. Spring Hibernate簡單討論
  4. 介紹Hibernate版本的更新
  5. 簡單講述Hibernate實例
責任編輯:佚名 來源: IT168
相關推薦

2009-09-27 17:13:36

Hibernate V

2009-09-28 14:54:33

Hibernate映射

2009-09-24 10:40:19

Hibernate核心

2009-06-12 14:40:38

Hibernate AHibernate接口

2009-09-02 13:36:58

C#實現多個接口

2009-09-27 13:42:05

Hibernate E

2025-01-21 11:18:46

2009-09-23 14:05:08

Hibernate接口

2009-06-24 08:04:18

Hibernate基礎核心接口數據類型

2009-09-23 17:18:16

Hibernate S

2009-09-24 09:45:23

Hibernate批量

2009-09-27 10:19:11

Hibernate命名

2009-12-31 15:43:00

寬帶貓網絡接口

2009-09-22 15:22:08

Hibernate性能

2009-09-23 14:00:07

Hibernate連接

2009-09-28 11:30:53

Hibernate核心

2009-09-14 15:12:40

LINQ to XML

2010-05-25 12:59:00

Subversion

2011-06-03 13:48:18

JavaScript重構

2009-07-06 10:44:45

JSP charset
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一卡二卡三卡 | 日韩一区和二区 | 欧美一级欧美三级在线观看 | 性做久久久久久免费观看欧美 | 99精品视频在线观看 | 国产毛片毛片 | 亚洲v日韩v综合v精品v | 天天操天天玩 | 亚洲精品视频在线观看免费 | 欧美电影在线观看网站 | 荷兰欧美一级毛片 | 超碰一区二区 | wwwsihu| 欧美v在线观看 | 亚洲免费在线 | 日韩精品 电影一区 亚洲 | 亚洲免费大片 | 2022精品国偷自产免费观看 | 欧美精品一区二区免费 | 伊人狠狠干 | 亚洲视频一区在线播放 | 孰女乱色一区二区三区 | 色播99| 四虎最新视频 | 久久精品一级 | 亚洲免费在线 | 欧美性猛交一区二区三区精品 | 成人三级视频在线观看 | av网站免费观看 | 性精品 | 亚洲三区视频 | 久久精品免费一区二区三 | 欧美亚洲国产一区二区三区 | 国产精品视频500部 a久久 | 国产精品视频网站 | 一区二区三区视频在线观看 | 国产精品美女久久久久久免费 | 久久大全 | 91久久精品一区二区三区 | 亚洲免费观看视频 | 日韩精彩视频 |