亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hibernate中有哪些核心接口

發布時間:2021-12-05 08:57:45 來源:億速云 閱讀:127 作者:小新 欄目:編程語言

小編給大家分享一下Hibernate中有哪些核心接口,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

包括七大核心接口:Session接口、SessionFactory接口 、Configuration 接口、Transaction 接口、Query 和Criteria接口、Callback 接口、策略接口。

1.Session 接口

Session 接口對于Hibernate 開發人員來說是一個最重要的接口。然而在Hibernate 中,實例
化的Session是一個輕量級的類,創建和銷毀它都不會占用很多資源。這在實際項目中確實很重要,
因為在客戶程序中,可能會不斷地創建以及銷毀Session 對象,如果Session 的開銷太大,會給系
統帶來不良影響。但值得注意的是Session 對象是非線程安全的,因此在你的設計中,***是一個
線程只創建一個Session對象。
在Hibernate 的設計者的頭腦中,他們將session看作介于數據連接與事務管理一種中間接口。
我們可以將session想象成一個持久對象的緩沖區,Hibernate能檢測到這些持久對象的改變,并及
時刷新數據庫。我們有時也稱Session是一個持久層管理器,因為它包含這一些持久層相關的操作,
諸如存儲持久對象至數據庫,以及從數據庫從獲得它們。請注意,Hibernate 的session不同于JSP
應用中的HttpSession。當我們使用session這個術語時,我們指的是Hibernate 中的session,而
我們以后會將HttpSesion 對象稱為用戶session。

2. SessionFactory 接口

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

3.Configuration 接口

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

4.Transaction 接口

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

5.Query 和Criteria接口

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

6. Callback 接口

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

7.策略接口

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

Hibernate為以上所列的機制分別創建了一個缺省的實現,因此如果你只是要增強它的某個策略
的功能的話,只需簡單地繼承這個類就可以了,沒有必要從頭開始寫代碼。

以上是“Hibernate中有哪些核心接口”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

辽源市| 长丰县| 宽城| 宝坻区| 康乐县| 平江县| 巴东县| 鹤壁市| 新巴尔虎右旗| 丹巴县| 龙泉市| 灵川县| 鄂尔多斯市| 华蓥市| 兰州市| 成都市| 巴楚县| 鄂托克前旗| 宁阳县| 建瓯市| 九江市| 绥滨县| 山西省| 玉龙| 赤峰市| 苏尼特右旗| 永吉县| 化隆| 江山市| 巴彦淖尔市| 南皮县| 定日县| 苏尼特左旗| 富民县| 怀宁县| 加查县| 松阳县| 衡东县| 石泉县| 霍林郭勒市| 珠海市|