溫馨提示×

溫馨提示×

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

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

Hibernate3的工作原理是什么

發(fā)布時間:2021-08-25 17:47:19 來源:億速云 閱讀:122 作者:chen 欄目:編程語言

這篇文章主要介紹“Hibernate3的工作原理是什么”,在日常操作中,相信很多人在Hibernate3的工作原理是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Hibernate3的工作原理是什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

一、Hibernate3 的初始化

讀取Hibernate 的配置信息-〉創(chuàng)建Session Factory

1、創(chuàng)建Configeration類的實例。

它的構(gòu)造方法:將配置信息(Hibernate config.xml)讀入到內(nèi)存。
一個Configeration 實例代表Hibernate 所有Java類到Sql數(shù)據(jù)庫映射的集合。

2、創(chuàng)建SessionFactory實例

把Configeration 對象中的所有配置信息拷貝到SessionFactory的緩存中。 SessionFactory的實例代表一個數(shù)據(jù)庫存儲員源,創(chuàng)建后不再與Configeration 對象關(guān)聯(lián)。緩存(cache):指Java對象的屬性(通常是一些集合類型的屬性--占用內(nèi)存空間。 SessionFactory的緩存中:Hibernate 配置信息。OR映射元數(shù)據(jù)。 緩存-大:重量級對象 ?。狠p量級對象

3、調(diào)用SessionFactory創(chuàng)建Session的方法

(1)用戶自行提供JDBC連接。

Connection con=dataSource.getConnection();
Session s=sessionFactory.openSession(con);

(2)讓SessionFactory提供連接

Session s=sessionFactory.openSession();

4、通過Session 接口提供的各種方法來操縱數(shù)據(jù)庫訪問。

二、Hibernate3 的緩存體系:

一級緩存:
Session 有一個內(nèi)置的緩存,其中存放了被當(dāng)前工作單元加載的對象。每個Session 都有自己獨立的緩存,且只能被當(dāng)前工作單元訪問。

二級緩存:
SessionFactory的外置的可插拔的緩存插件。其中的數(shù)據(jù)可被多個Session共享訪問。SessionFactory的內(nèi)置緩存:存放了映射元數(shù)據(jù),預(yù)定義的Sql語句。

三、Hibernate3 中Java對象的狀態(tài)

1、臨時狀態(tài) (transient)

特征:

(1)不處于Session 緩存中

(2)數(shù)據(jù)庫中沒有對象記錄

Java如何進(jìn)入臨時狀態(tài):

(1)通過new語句剛創(chuàng)建一個對象時

(2)當(dāng)調(diào)用Session 的delete()方法,從Session 緩存中刪除一個對象時。

2、持久化狀態(tài)(persisted)

特征:

(1)處于Session 緩存中

(2)持久化對象數(shù)據(jù)庫中設(shè)有對象記錄

(3)Session 在特定時刻會保持二者同步

Java如何進(jìn)入持久化狀態(tài):

(1)Session 的save()把臨時-》持久化狀態(tài)

(2)Session 的load(),get()方法返回的對象

(3)Session 的find()返回的list集合中存放的對象

(4)Session 的update(),saveOrupdate()使游離-》持久化

3、游離狀態(tài)(detached)

特征:

(1)不再位于Session 緩存中

(2)游離對象由持久化狀態(tài)轉(zhuǎn)變而來,數(shù)據(jù)庫中可能還有對應(yīng)記錄。

Java如何進(jìn)入持久化狀態(tài)-》游離狀態(tài)

(1)Session 的close()方法

(2)Session 的evict()方法,從緩存中刪除一個對象。提高性能。少用。

到此,關(guān)于“Hibernate3的工作原理是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI