很不好意思,前三篇都還是概念。
其一: 我想歸納下來,給自己以后看做一個備份
其二: 現(xiàn)在真沒時間去寫代碼
項目做完,回到成都,在后面的文章中,我會抽空寫一些實際的例子
---------------------------------------------------------------------------------------------------------------------
概念Hibernate中的接口
---------------------------------------------------------------------------------------------------------------------
大致分類:
■ 被用戶的應(yīng)用程序調(diào)用的,用來完成基本的創(chuàng)建、讀取、更新、刪除操作以及查詢操作的接口。這些接口是Hibernate實現(xiàn)用戶程序的商業(yè)邏輯的主要接口,它們包括Session、Transaction和Query
■ Hibernate用來讀取諸如映射表這類配置文件的接口,典型的代表有Configuration類
■ 回調(diào)(Callback)接口。它允許應(yīng)用程序能對一些事件的發(fā)生作出相應(yīng)的操作,例如Interceptor、Lifecycle和Validatable都是這一類接口
■ 一些可以用來擴(kuò)展Hibernate的映射機(jī)制的接口,例如UserType、CompositeUserType和IdentifierGenerator。如果你確認(rèn)有必要的話這些接口可由用戶程序來實現(xiàn)。
Session接口
Session接口對于Hibernate開發(fā)人員來說是一個最重要的接口。然而在Hibernate中,實例化的Session是一個輕量級的類,創(chuàng)建和銷毀它都不會占用很多資源。這在實際項目中確實很重要,因為在客戶程序中,可能會不斷地創(chuàng)建以及銷毀Session對象,如果Session的開銷太大,會給系統(tǒng)帶來不良影響。但值得注意的是Session對象是非線程安全的,因此在你的設(shè)計中,最好是一個線程只創(chuàng)建一個Session對象。
Hibernate的設(shè)計者將session看作介于數(shù)據(jù)連接與事務(wù)管理一種中間接口。我們可以將session想象成一個持久對象的緩沖區(qū),Hibernate能檢測到這些持久對象的改變,并及時刷新數(shù)據(jù)庫。我們有時也稱Session是一個持久層管理器,因為它包含這一些持久層相關(guān)的操作,諸如存儲持久對象至數(shù)據(jù)庫,以及從數(shù)據(jù)庫從獲得它們。請注意,Hibernate 的session不同于JSP應(yīng)用中的HttpSession。我們通常會將HttpSesion對象稱為用戶Session。
SessionFactory 接口
他用到了一個設(shè)計模式[工廠模式],用戶程序從工廠類SessionFactory中取得Session的實例。
但是請記住,SessionFactory并不是輕量級的!實際上它的設(shè)計者的意圖是讓它能在整個應(yīng)用中共享。典型地來說,一個項目通常只需要一個SessionFactory就夠了,但是當(dāng)你的項目要操作多個數(shù)據(jù)庫時,那你必須為每個數(shù)據(jù)庫指定一個SessionFactory。
Configuration 接口
Configuration接口的作用是對Hibernate進(jìn)行配置,以及對它進(jìn)行啟動。在Hibernate的啟動過程中,Configuration類的實例首先定位映射文檔的位置,讀取這些配置,然后創(chuàng)建一個SessionFactory對象。
Transaction 接口
Transaction接口是一個可選的API,你可以選擇不使用這個接口,取而代之的是Hibernate的設(shè)計者自己寫的底層事務(wù)處理代碼。 Transaction接口是對實際事務(wù)實現(xiàn)的一個抽象,這些實現(xiàn)包括JDBC的事務(wù)、JTA中的UserTransaction、甚至可以是CORBA事務(wù)。
為什么要這樣設(shè)計呢?因為這樣使開發(fā)者能夠使用一個統(tǒng)一事務(wù)的操作界面,使得自己的項目可以在不同的環(huán)境和容器之間方便地移值。
Query和Criteria接口
Query接口讓你方便地對數(shù)據(jù)庫及持久對象進(jìn)行查詢,它可以有兩種表達(dá)方式:HQL語言或本地數(shù)據(jù)庫的SQL語句。Query經(jīng)常被用來綁定查詢參數(shù)、限制查詢記錄數(shù)量,并最終執(zhí)行查詢操作
Callback 接口
當(dāng)一些有用的事件發(fā)生時。例如持久對象的載入、存儲、刪除時,Callback接口會通知Hibernate去接收一個通知消息。一般而言,Callback接口在用戶程序中并不是必須的,但你要在你的項目中創(chuàng)建審計日志時,你可能會用到它。
2005年11月3日 夜 陰天 溫度偏低
聽濤[601]室 窗臺