Hibernate電腦版是一款專業(yè)易用的開放源代碼軟件,Hibernate官方版可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,Hibernate電腦版對JDBC進行了十分輕量級的對象封裝,使得Java程序員能夠隨意使用對象編程思維來操縱數(shù)據(jù)庫。
Hibernate基本簡介
Hibernate中文版的核心接口一共有6個,分別為:Session、SessionFactory、Transaction、Query、Criteria和Configuration。這6個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務(wù)控制。
Hibernate軟件特色
1、一種Java語言下的對象關(guān)系映射解決方案。
2、使用GNU寬通用公共許可證發(fā)行的自由、開源的軟件。
3、它為面向?qū)ο蟮念I(lǐng)域模型到傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的映射,提供了一個使用方便的框架。
4、Hibernate也是目前Java開發(fā)中最為流行的數(shù)據(jù)庫持久層框架,現(xiàn)已歸JBOSS所有。
5、它的設(shè)計目標是將軟件開發(fā)人員從大量相同的數(shù)據(jù)持久層相關(guān)編程工作中解放出來。
6、無論是從設(shè)計草案還是從一個遺留數(shù)據(jù)庫開始,開發(fā)人員都可以采用Hibernate。
7、不僅負責從Java類到數(shù)據(jù)庫表的映射,還包括從Java數(shù)據(jù)類型到SQL數(shù)據(jù)類型的映射。
8、還提供了面向?qū)ο蟮臄?shù)據(jù)查詢檢索機制,從而極大地縮短的手動處理SQL和JDBC上的開發(fā)時間。
Hibernate工作原理
Hibernate工作原理是Configuration讀取Hibernate的配置文件bai和映射文件中的信息,即加載配置文件和映射文件,并通過Hibernate配置文件生成一個多線程的SessionFactory對象。
然后,多線程SessionFactory對象生成一個線程Session 對象;Session對象生成Query對象或者Transaction對象;可通過Session對象的get(),load(),save(),update(),delete()和saveOrUpdate( )等方法對PO進行加載、保存、更新、刪除等操作。
在查詢的情況下,可通過Session 對象生成一個Query對象,然后利用Query對象執(zhí)行查詢操作;如果沒有異常,Transaction對象將提交這些操作結(jié)果到數(shù)據(jù)庫中。
Hibernate緩存機制
一級緩存:hibernate的一級緩存是由session提供的,因此它只存在session的生命周期中。也就是說session關(guān)閉的時候該
session所管理的一級緩存也隨之被清除。hibernate的一級緩存是session所內(nèi)置的,默認開啟,不能被卸載,也不能進行任何配置。在緩
存中的對象,具有持久性,session對象負責管理.一級緩存的優(yōu)點是使用同一個session對象多次查詢同一個數(shù)據(jù)對象,僅對數(shù)據(jù)庫查詢一次。一級
緩存采用的是Key-Value的MAP方式來實現(xiàn)的。在緩存實體對象時,對象的主關(guān)鍵字ID是MAP的Key,實體對象就是對象的值。所以說一級緩存是
以實體對象為單位進行存儲的。訪問的時候使用的是主鍵關(guān)鍵字ID。一級緩存使用的是自動維護的功能。但可以通過session提供的手動方法對一級緩存的
管理進行手動干預(yù)。evict()方法用于將某個對象從session的一級緩存中清除。clear()方法用于將session緩存中的方法全部清除。
Hibernate使用說明
1.Session接口負責執(zhí)行被持久化對象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫的交流,包含了很多常見的SQL語句。)。但需要注意的是Session對象是非線程安全的。同時,Hibernate的session不同于JSP應(yīng)用中的HttpSession。這里當使用session這個術(shù)語時,其實指的是Hibernate中的session,而以后會將HttpSession對象稱為用戶session。
2.SessionFactory接口負責初始化Hibernate。它充當數(shù)據(jù)存儲源的代理,并負責創(chuàng)建Session對象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級的,因為一般情況下,一個項目通常只需要一個SessionFactory就夠,當需要操作多個數(shù)據(jù)庫時,可以為每個數(shù)據(jù)庫指定一個SessionFactory。
3.Configuration類負責配置并啟動Hibernate,創(chuàng)建SessionFactory對象。在Hibernate的啟動的過程中,Configuration類的實例首先定位映射文檔位置、讀取配置,然后創(chuàng)建SessionFactory對象。
4.Transaction接口負責事務(wù)相關(guān)的操作。它是可選的,開發(fā)人員也可以設(shè)計編寫自己的底層事務(wù)5.Query和Criteria接口負責執(zhí)行各種數(shù)據(jù)庫查詢。它可以使用HQL語句或SQL語句兩種表達方式。
Hibernate更新日志:
開發(fā)GG說這次真的沒有bug了~
小編推薦:Hibernate作為一款應(yīng)用廣泛,功能強大的免費,該最新版的功能得到眾多網(wǎng)友的一致好評,強烈推薦大家下載使用,另外還有{recommendWords}推薦給大家下載使用。