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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ORM进阶之Hibernate 的三大对象

發布時間:2023/12/2 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ORM进阶之Hibernate 的三大对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

???????ORM進階之 ORM簡單介紹

????????ORM進階之Hibernate 簡單介紹及框架搭

??????? ORM進階之Hibernate 的三大對象

????????

??????? 我們在上一篇博客中講到了怎樣搭建一個Hibernate框架, 提到Hibernate我們就不得不說他的三大對象,Configuration,SessionFactory , Session 。下邊我們就分別來解釋一下這三大對象!

Configuration對象

?????? Configuration類用來管理我們的配置文件的信息的,通過它。我們能夠通過創建一個configuration實例來管理對應的配置文檔,可是通常我們僅僅創建一個configuration實例。

創建過程 Configuration cfg =new Configuration().configure();?? 我們也能夠在configure()方法中指定hbm.xml文件的路徑。

SessionFactory對象

??????? SessionFactory 顧名思義,他是創建session的工廠。用來創建session對象,令你感到奇怪的是SessionFactory并非輕量級的。實際上它的設計者的意圖是讓它能在整個應用中共享。典型地來說。一個項目通常僅僅須要一個SessionFactory就夠了,可是當你的項目要操作多個數據庫時。那你必須為每一個數據庫指定一個SessionFactory。

??

?????? SessionFactory在Hibernate中實際起到了一個緩沖區的作用,它緩沖了Hibernate自己主動生成的SQL語句和一些其他的映射數據,還緩沖了一些將來有可能反復利用的數據。??

?????? 一個SessionFactory實例相應一個數據存儲源。應用從SessionFactory中獲得Session實例。SessionFactory它是線程安全的,這意味著它的同一個實例能夠被應用的多個線程共享。

?????? SessionFactory的緩存可分為兩類:內置緩存和外置緩存。

?????? SessionFactory的內置緩存中存放了Hibernate配置信息和映射元數據信息、同一時候也緩存了Hibernate自己主動生成的SQL語句等;

??????? SessionFactory的外置緩存是一個可配置的緩存插件,在默認情況下,SessionFactory不會啟用這個緩存插件。

外置緩存能存放大量數據庫數據的拷貝。外置緩存的物理介質能夠是內存或者硬盤

Session對象

Session對象的簡單介紹

?????? Session接口對于Hibernate?? 開發者來說是一個最重要的接口。然而在Hibernate中,實例化的Session是一個輕量級的類。創建和銷毀它都不會占用非常多資源。

這在實際項目中確實非常重要,由于在客戶程序中,可能會不斷地創建以及銷毀Session對象,假設Session的開銷太大。會給系統帶來不良影響。

但值得注意的是 Session對象是非線程安全的,因此在你的設計中。最好是一個線程僅僅創建一個Session對象。??

???

?  ? 在Hibernate的設計者的頭腦中,他們將session看作介于數據連接與事務管理一種中間接口。我們能夠將session想象成一個持久對象的緩沖區。Hibernate能檢測到這些持久對象的改變,并及時刷新數據庫。我們有時也稱Session是一個持久層管理器,由于它包括這一些持久層相關的操作,諸如存儲持久對象至數據庫,以及從數據庫從獲得它們。請注意,Hibernate?? 的session不同于JSP應用中的HttpSession。當我們使用session這個術語時,我們指的是Hibernate中的session,而我們以后會將HttpSesion對象稱為用戶session。

?

怎樣獲得Session對象

?????? 首先創建SessionFactory對象應用server假設訪問多個數據源時,則應該產生多個SessionFactory;可是只為了服務與某個請求時,不要創建一個新的SessionFactory,由于創建SessionFactory須要消耗大量的資源.然后依據SessionFactory再創建Session對象?創建session對象有兩種方式,各自是openSession()和getCurrentSession(),openSession,打開須要關閉。可是getCurrentSession 是不須要關閉的。他會自己主動的關閉!

<span style="font-size:18px;">Session session=sessionFactory.openSession();Transaction tx; try{tx=session.beginTransaction();//開始一個事務.......//運行事務tx.commit(); }catch(Exceptione){//假設出現異常就撤消事務if(tx!=null)tx.rollback();throw e; } Finally{ //無論事務運行成功與否,最后都關閉Session而且放在finally中以提高安全性session.close(); }</span>

?????? 我們先通過configuration 讀取數據庫的一系列的配置文件,然后通過這一系列的配置信息。創建一個創建數據庫連接的工廠SessionFactory,然后通過SessionFactory 我們就能夠拿到詳細的鏈接的數據庫的對象,對數據庫進行操作!

?

轉載于:https://www.cnblogs.com/lytwajue/p/7262475.html

總結

以上是生活随笔為你收集整理的ORM进阶之Hibernate 的三大对象的全部內容,希望文章能夠幫你解決所遇到的問題。

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