日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Hibernate3的工作原理

一、Hibernate3 的初始化

“真誠服務,讓網(wǎng)絡創(chuàng)造價值”是我們的服務理念,創(chuàng)新互聯(lián)公司團隊10多年如一日始終堅持在網(wǎng)站建設領(lǐng)域,為客戶提供優(yōu)質(zhì)服。不管你處于什么行業(yè),助你輕松跨入“互聯(lián)網(wǎng)+”時代,PC網(wǎng)站+手機網(wǎng)站+公眾號+小程序制作。

讀取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)置的緩存,其中存放了被當前工作單元加載的對象。每個Session 都有自己獨立的緩存,且只能被當前工作單元訪問。
 
二級緩存:
SessionFactory的外置的可插拔的緩存插件。其中的數(shù)據(jù)可被多個Session共享訪問。SessionFactory的內(nèi)置緩存:存放了映射元數(shù)據(jù),預定義的Sql語句。

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

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

特征:
 
(1)不處于Session 緩存中

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

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

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

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

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

特征:
 
(1)處于Session 緩存中

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

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

Java如何進入持久化狀態(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ù)庫中可能還有對應記錄。

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

(1)Session 的close()方法

(2)Session 的evict()方法,從緩存中刪除一個對象。提高性能。少用。
 
研究了兩天的 Hibernate,看了很多資料,也拜讀了其關(guān)鍵類,感覺自己有很多地方需要學習。比如說Hibernate的緩存機制是怎么實現(xiàn)的,Hibernate在封裝JDBC和JTA時都做了些什么,其ORM是怎么實現(xiàn)的等等。要弄清這些東西估計需要很長時間的摸索和積累,也只有在實際應用中不斷加深對它們的理解了:)下面,我將最近兩天的收獲總結(jié)一下,主要敘述一下Hibernate的基本工作原理。對于Hibernate的緩存機制、基于JDBC和JTA的事務處理及其ORM的實現(xiàn)等技術(shù),以后慢慢再補吧。

所謂Hibernate的基本工作原理,換言之,也就是Hibernate大體的工作流程。在這里,我們仿照前面對Struts基本原理的闡述方法,僅將其原理圖呈現(xiàn)給大家,詳細文字說明在此略過(個人認為這張圖對Hibernate基本工作過程的敘述已經(jīng)足夠全面了,所以沒必要再用文字說明,如果還是不明白,請您給我留言或者查看相關(guān)資料)。


分享題目:Hibernate3的工作原理
轉(zhuǎn)載注明:http://www.5511xx.com/article/dpogjop.html