日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

解析Hibernate的结构

發布時間:2023/12/10 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解析Hibernate的结构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??????? 在學習Hibernate的時候,首先要了解Hibernate的大體結構,這樣才能更好的理解其中的知識,下面就開始分析Hibernate的體系結構

?????? 1.HIbernate簡要的體系結構如下圖所示:

?

??????? 通過上圖能夠發現HIbernate需要一個hibernate.properties文件,該文件用于配置Hibernate和數據庫連接的信息。還需要一個XML文件,該映射文件確定了持久化類和數據表、數據列之間的想對應關系。

除了使用hibernate.properties文件,還可以采用另一種形式的配置文件: *.cfg.xml文件。在實際應用中,采用XML配置文件的方式更加廣泛,兩種配置文件的實質是一樣的

???????? 2.輕型體系中,應用程序自己提供JDBC連接,并且自行管理事務,這種方式使用了HibernateApi的一個最小子集。

?

????????1SessionFactory:這是Hibernate的關鍵對象,它是單個數據庫映射關系經過編譯后的內存鏡像,它也是線程安全的。它是生成Session的工廠,本身要應用到ConnectionProvider,該對象可以在進程和集群的級別上,為那些事務之間可以重用的數據提供可選的二級緩存。

?????? 2Session:它是應用程序和持久存儲層之間交互操作的一個單線程對象。它也是Hibernate持久化操作的關鍵對象,所有的持久化對象必須在Session的管理下才能夠進行持久化操作。此對象的生存周期很短,其隱藏了JDBC連接,也是Transaction的工廠。Session對象有一個一級緩存,現實執行Flush之前,所有的持久化操作的數據都在緩存中Session對象處。

?????? 3. Hibernate的持久化解決方案將用戶從赤裸裸的JDBC訪問中釋放出來,用戶無需關注底層的JDBC操作,而是以面向對象的方式進行持久層操作。底層數據連接的獲得、數據訪問的實現、事務控制都無需用戶關心。這是一種“全面解決”的體系結構方案,將應用層從底層的JDBC/JTA API中抽象出來。通過配置文件來管理底層的JDBC連接,讓Hibernate解決持久化訪問的實現。這種“全面解決”方案的體系結構圖如圖所示:

??????? 針對以上的Hibernate全面解決方案架構圖:

??? 1)持久化對象:系統創建的POJO實例一旦與特定Session關聯,并對應數據表的指定記錄,那該對象就處于持久化狀態,這一系列的對象都被稱為持久化對象。程序中對持久化對象的修改,都將自動轉換為持久層的修改。持久化對象完全可以是普通的Java Beans/POJO,唯一的特殊性是它們正與Session關聯著。

??? 2)瞬態對象和脫管對象:系統進行new關鍵字進行創建的Java實例,沒有Session相關聯,此時處于瞬態。瞬態實例可能是在被應用程序實例化后,尚未進行持久化的對象。如果一個曾今持久化過的實例,但因為Session的關閉而轉換為脫管狀態。

??? 3)事務(Transaction):代表一次原子操作,它具有數據庫事務的概念。但它通過抽象,將應用程序從底層的具體的JDBCJTACORBA事務中隔離開。在某些情況下,一個Session之內可能包含多個Transaction對象。雖然事務操作是可選的,但是所有的持久化操作都應該在事務管理下進行,即使是只讀操作。

????? 4)連接提供者(ConnectionProvider):它是生成JDBC的連接的工廠,同時具備連接池的作用。他通過抽象將底層的DataSourceDriverManager隔離開。這個對象無需應用程序直接訪問,僅在應用程序需要擴展時使用。

????? 5)事務工廠(TransactionFactory):他是生成Transaction對象實例的工廠。該對象也無需應用程序的直接訪問。

?

轉載于:https://www.cnblogs.com/jpa2/archive/2012/05/30/2527328.html

總結

以上是生活随笔為你收集整理的解析Hibernate的结构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。