Hibernate是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫,同時Hibernate作為持久層中間件,它的具體實現對與上層調用是透明的,即上層通過接口來調用Hibernate的具體實現,所以對于入門級別的討論來說,自然應該先從接口開始了。
1.Configuration核心接口
在Hibernate應用中通過Configuration的實例來指定對象-關系映射文件或通過Configuration動態配置Hibernate的屬性,然后通過Configuration來創建相應的SessionFactory實例。所以Configuration主要作用是配置并啟動Hibernate。
2.SessionFactory核心接口
在Hibernate應用中一個SessionFactory對應一個數據源,它是個重量級對象(注意:不可隨意生成多個實例,對于一般的單數據庫應用來說,只需要一個SessionFactory就足夠了,當然如果有多個數據庫的話,還是需要為每個數據庫生成對應的SessionFactory);它是線程安全的,同一個實例可以被應用中的多個線程共享;同時SessionFactory存放了大量預定義的SQL語句以及映射元數據,則需要很大的緩存了,也需要一定的CPU時間來計算生成。
注:通過Mapping文件的定義,很多SQL語句就已經確定了,只需要動態生成一次就可以了,提高持久化的效率。
3.Session核心接口
Session接口是Hibernate應用中使用最廣泛的接口了,它是持久化管理器,提供添加、更新、刪除、加載、查詢對象。Session不是線程安全的,所以應避免多個線程共享同一個Session實例。Session是輕量級對象,它的創建和銷毀不需要太多資源,這意味著在應用中可以經常創建和銷毀Session對象。
Session有一個緩存,稱之為Hibernate的一級緩存,它存放當前工作單元加載的持久化對象,每個Session都有自己的緩存,緩存中的對象只能被當前工作單元訪問。
注:Session實例是從SessionFactory中可以獲得。
4.Transaction核心接口
Transaction是Hibernate的數據庫事務接口,它對底層道德事務接口進行了封裝,底層事務接口包括:
JDBC API
JTA(Java Transaction API)
CORBA(Common Object Requet Broker Architecture) API
Hibernate應用可以通過一致Transaction接口來聲明事務邊界,這有助于應用可以在不同的環境或容器中移植。具體的事務實現使用在Hibernate.properties中進行指定。
5.Query和Criteria核心接口
這兩個是Hibernate的查詢接口,用于向數據庫查詢對象,以及控制執行查詢的過程。Query實例包裝了一個HQL(Hibernate Query Language)來查詢。Criteria接口完全封裝了基于字符串形式的查詢語句,比Query更面向對象,Criteria更擅長執行動態查詢。
總結
1、Configuration:配置hibernate,創建SessionFactory對象。
2、SessionFactory:初始化hibernate,充當數據存儲源的代理,創建Session對象。
3、Session:負責保存,更新,刪除。加載和查詢對象。
4、Transaction:管理事務。
5、Query和Criteria:執行數據庫的查詢。
到此這篇關于Hibernate中5個核心接口知識點整理的文章就介紹到這了,更多相關關于Hibernate中5個核心接口介紹內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:http://www.jszja.com/contents/14/2763.html