亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

[轉]Hibernate中Session的緩存及對象的狀態

系統 1726 0

?

?
發布時間:2007.08.14 06:06 ???? 來源:賽迪網 ???? 作者:dxaw

對于session這個接口的學習可以說是最痛苦也是最復雜的,因為它所涉及的方面太多了,一些隱藏的機制也很多,誰讓它是Central API呢。

?

對于它的幾個最基本的方法如save()、delete()、flush()等的學習都花了我一定的時間。在深入了解這些這些方法前,了解session的緩存機制以及Hibernate中Java對象的狀態對我們是很有幫助的。

?

一.Session的緩存

?

Java是純面向對象的語言,因此不可能像C語言那樣直接操縱內存 ,例如聲明一段可用的內存空間。在Java里面,緩存通常是指Java對象的屬性占用的內存空間,通常是一些集合類型的屬性。在session接口的實現類SessionImpl中定義了一系列的Java集合,這些Java集合就構成了Session的緩存。

?

使用緩存的一個很明顯的好處就是可以減少數據庫訪問的頻率,提高應用程序的性能,因為從內存中讀取數據顯然要比從數據庫中查詢快多了 。根據我個人的理解,Session的緩存實際上起到了一個“過渡倉庫”作用。就像魔獸中的英雄一樣,身上都會背有一個包,用來存放常用的物品如補血藥水、補魔藥水、回城卷等等。 如果想用回城卷而身上沒有回程卷的話就要跑到商店去shopping了,這樣就會浪費大量的時間了,除非你此刻就在商店旁邊;如果想用的回城卷的時候身上就有的話,英雄就可以直接用而不必大老遠的跑到商店去了。我們的Session的緩存可以說就相當于英雄身上的背包,我的應用程序就是英雄,而數據庫就是商店咯,(高,實在是高!!!!!!) 如下圖所示。

當然這個比喻不是很準確了,比方說在Hibernate應用中我們可以向數據庫插入一條新的記錄,而在魔獸中你是不可能給商店增加存貨量的,只是為了便于理解,才作了這么一個對比。

?

二.Hibernate中Java對象的狀態

?

在一個Hibernate應用中,Java對象可以處于以下三個狀態之一:

?

1.臨時狀態(Transient)。處于這個狀態的對象還被沒有納入Hibernate的緩存管理體系,跟任何session都不關聯,在數據庫中也沒有對應的記錄。

?

2.持久化狀態(Persistent)。處于這個狀態的對象位于Session的緩存中,并且和數據庫中的一條數據記錄相對應。

?

3.游離狀態(Detached)。處于這個狀態的對象不再位于Session的緩存中,它與臨時對象的最大區別在于,游離對象在數據庫中還可能存在一條與它對應的記錄。

?

上述3個狀態之間是可以相互轉化的,而且我 們所說的狀態都是針對某一個session實例而言的,比方說,對象A對于session1而言是處于持久化狀態的,因為它處于session1的緩存中,但是對于session2而言對象A并不在它的緩存中,因此它是處于游離狀態的

?

對于這幾個狀態的理解花費了我一定的時間,因為總是有一些稀奇古怪的念頭在我腦海中產生。比如說,對于臨時狀態的定義,如果我新建一個對象,然后人為的讓它屬性的值和數據庫中的一條記錄對應,包括id的取值都一樣。此時它能否說是處于游離狀態呢?因為它和一條記錄想對應呀。實際上這些情況都是由于一些不和規范的操作而產生的。在Hibernate應用中,無論Java對象處于臨時狀態、持久化狀態還是游離狀態,應用程序都不應該修改它的OID。OID的值應該由Hibernate來維護和負責,實際上Hibernate在同步緩存中的對象與數據庫中的記錄時,都是通過OID來進行關聯和映射的,如果應用程序人為的修改了對象的OID,就會導致一些莫名其妙的錯誤,而且這樣也不利于數據的同步

[轉]Hibernate中Session的緩存及對象的狀態


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩欧美高清一区 | 国产一区二区三区免费视频 | 亚洲日本久久久午夜精品 | 亚洲视频第二页 | 亚洲精品中文字幕一区在线 | 日本一级毛片视频网站 | 色老头老太做爰视频在线观看 | 东北一级毛片 | 亚洲瑟瑟网 | 中文字幕日韩在线观看 | 精品国产成人a在线观看 | 久久公开视频 | 午夜视频网站 | 99pao在线视频精品免费 | 日本成人tv | 国产精品美女视频 | 久久综合色之久久综合 | 国产成年网站v片在线观看 国产成人 免费观看 | 91大神在线精品视频一区 | 一级做a免费视频观看网站 一级做a爰片久久毛片唾 | 久久我们这里只有精品国产4 | 亚洲毛片免费视频 | 国产国产成人人免费影院 | 天天躁日日躁狠狠躁综合 | 国产农村一一级特黄毛片 | 米奇精品一区二区三区 | 日本一区二区网站 | 九九99热久久精品在线9 | 精品在线免费视频 | 99国产精品欧美久久久久久影院 | 香蕉在线精品亚洲第一区 | 免费看一级做a爰片久久 | 午夜国产福利在线 | 国产精品美女在线 | 欧美一级网址 | 精品久久香蕉国产线看观看亚洲 | 99国内精品 | 激情五月婷婷久久 | www色综合| 久久毛片久久毛 | 4399一级成人毛片 |