日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Hibernate體系結(jié)構(gòu)(簡(jiǎn)介)

系統(tǒng) 1981 0

全面的體系結(jié)構(gòu)方案,將應(yīng)用從底層的 jdbc/jtaapi 抽象出來(lái),而讓 hibernate 來(lái)處理這些細(xì)節(jié)。

?

Hibernate體系結(jié)構(gòu)(簡(jiǎn)介)

圖中各對(duì)象定義如下:

SessionFactory(org.hibernate.SessionFactory)

針對(duì)單個(gè)數(shù)據(jù)庫(kù)映射關(guān)系經(jīng)過(guò)編譯后的內(nèi)存鏡像,是線(xiàn)程安全的(不可變)。它是生成的 Session 的工廠,本身要用到 ConnectionProvider 。該對(duì)象可以在進(jìn)程或集群的級(jí)別上,為那些事務(wù)之間可以重用的數(shù)據(jù)庫(kù)提供可選的二級(jí)緩存。

?

Session(org.hibernate.Session)

表示應(yīng)用程序與持久化存儲(chǔ)層之間交互操作的一個(gè)單線(xiàn)程對(duì)象,此對(duì)象生存期很短。其隱藏了 jdbc 連接,也是 Transaction 的工廠。其會(huì)持有一個(gè)針對(duì)持久化的必選(一級(jí))緩存,在遍歷對(duì)象圖或者根據(jù)持久化對(duì)象標(biāo)識(shí)查找對(duì)象時(shí)會(huì)用到。

?

持久化的對(duì)象及其集合

帶有持久化狀態(tài)的、具有業(yè)務(wù)功能的單線(xiàn)程對(duì)象,此對(duì)象生存期很短。這些對(duì)

象可以是普通的 JavaBeans/POJO ,唯一特殊的是他們正與(僅僅)一個(gè) Session

關(guān)聯(lián)。一旦 Session 被關(guān)閉,這些對(duì)象就會(huì)脫離持久化狀態(tài),這樣就可被應(yīng)用程序 的任何層自由使用。(例如:跟表示層打交道的數(shù)據(jù)傳輸對(duì)象。)

?

瞬態(tài) (transient) 各膠管 (detached) 的對(duì)象及其集合

那些目前沒(méi)有與 Session 關(guān)聯(lián)的持久化類(lèi)實(shí)例。他們可能是在被應(yīng)用實(shí)例化之后,尚未進(jìn)行持久化的對(duì)象。也可以是因?yàn)閷?shí)例化他們的 Session 已經(jīng)被關(guān)閉而脫離持久化的對(duì)象。

?

事務(wù) Transaction org.hibernate.Transaction

(可選的)應(yīng)用程序用來(lái)指示原子操作單元范圍的對(duì)象,它是單線(xiàn)程的,生命周期很短。它通過(guò)抽象將應(yīng)用從底層具體的 jdbc 、 jta 以及 corba 事務(wù)隔離開(kāi)。某此情況下,一個(gè) Session 之內(nèi)可能包含多個(gè) Transaction 對(duì)象。盡管是否使用該對(duì)象是可選的,但無(wú)論是底層的 api 不是使用 Transaction 對(duì)象,事務(wù)邊界的開(kāi)啟與關(guān)閉是不可少的。

?

ConnectionProvider org.hibernate.connection.ConnectionProvider

(可選的)生成 jdbc 連接的工廠(同時(shí)也起到連接池的作用)。它通過(guò)抽象將應(yīng)用從底層的 DataSource DriverManager 隔離開(kāi)。僅供開(kāi)發(fā)者擴(kuò)展 / 實(shí)現(xiàn)用,并不暴露給應(yīng)用程序使用。

?

TransactionFactory org.hibernate.TransactionFactory

(可選的)生成 Transaction 對(duì)象實(shí)例的工廠。僅供開(kāi)發(fā)者擴(kuò)展 / 實(shí)現(xiàn)用,并不暴露給應(yīng)用程序使用。

?

2. 實(shí)例狀態(tài)

一個(gè)持久化類(lèi)的實(shí)例可以處于三種不同的狀態(tài)中的某一種。這三種狀態(tài)的定義規(guī)則與所謂持久化上下文( persistencecontext )有關(guān)。 Hibernate Session 對(duì)象就是這個(gè)所謂的持久化上下文:

瞬態(tài)( transient

該實(shí)例從未與任何持久化上下文關(guān)聯(lián)過(guò)。它沒(méi)有持久化標(biāo)識(shí)值(相當(dāng)于主鍵值)。

?

持久化( persistent

實(shí)例目前與某個(gè)持久上下文相關(guān)聯(lián)。它擁有持久化標(biāo)識(shí),并且可能在數(shù)據(jù)庫(kù)中有一條對(duì)應(yīng)的記錄。對(duì)于某個(gè)特定的持久化上下文, hibernate 保證持久化標(biāo)識(shí)與 java 標(biāo)識(shí)(其值代表對(duì)象在內(nèi)存中的位置)等價(jià)。

?

膠管( detached

實(shí)例曾經(jīng)與某個(gè)持久化上下文發(fā)生過(guò)關(guān)聯(lián),不過(guò)那個(gè)上下文已經(jīng)被關(guān)閉了,或者這個(gè)實(shí)例是被序列化( serialize )到另外的進(jìn)程。它擁有持久化標(biāo)識(shí),并且在數(shù)據(jù)庫(kù)中可能存在有一條對(duì)應(yīng)的記錄。對(duì)于膠管狀態(tài)的實(shí)例, hibernate 不保證任何持久化標(biāo)識(shí)和 java 標(biāo)識(shí)的關(guān)系。

<!--EndFragment-->

<!--EndFragment-->

Hibernate體系結(jié)構(gòu)(簡(jiǎn)介)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。。?/p>

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 马山县| 清徐县| 黎城县| 南部县| 敦煌市| 宝应县| 米易县| 汉阴县| 沙田区| 韩城市| 武胜县| 沙雅县| 山东| 洛隆县| 株洲县| 平邑县| 攀枝花市| 本溪市| 永平县| 东乌珠穆沁旗| 道孚县| 栾城县| 新蔡县| 乃东县| 丁青县| 黔西县| 揭西县| 平利县| 静乐县| 宣化县| 昌图县| 凭祥市| 英山县| 郴州市| 焉耆| 霍城县| 紫云| 松潘县| 武夷山市| 连云港市| 顺义区|