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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

hibernate中SessionFactory,Session的理解?

發布時間:2024/6/18 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hibernate中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。 ?
? ?
?   SessionFactory ? 接口 ?
? ?
?   這里用到了一個設計模式――工廠模式,用戶程序從工廠類SessionFactory中取得Session的實例。 ?
? ?
?   令你感到奇怪的是SessionFactory并不是輕量級的!實際上它的設計者的意圖是讓它能在整個應用中共享。典型地來說,一個項目通常只需要一 個SessionFactory就夠了,但是當你的項目要操作多個數據庫時,那你必須為每個數據庫指定一個SessionFactory。 ?
? SessionFactory在Hibernate中實際起到了一個緩沖區的作用,它緩沖了Hibernate自動生成的SQL語句和一些其它的映射數據,還緩沖了一些將來有可能重復利用的數據。 ?
? ?
?   Configuration ? 接口 ?
? ?
?   Configuration接口的作用是對Hibernate進行配置,以及對它進行啟動。在Hibernate的啟動過程中,Configuration類的實例首先定位映射文檔的位置,讀取這些配置,然后創建一個SessionFactory對象。 ?
? ?
?   雖然Configuration接口在整個Hibernate項目中只扮演著一個很小的角色,但它是啟動hibernate時你所遇到的每一個對象。 ?
? ?
?   Transaction ? 接口 ?
? ?
?   Transaction接口是一個可選的API,你可以選擇不使用這個接口,取而代之的是Hibernate的設計者自己寫的底層事務處理代碼。 ? Transaction接口是對實際事務實現的一個抽象,這些實現包括JDBC的事務、JTA中的UserTransaction、甚至可以是CORBA 事務。之所以這樣設計是能讓開發者能夠使用一個統一事務的操作界面,使得自己的項目可以在不同的環境和容器之間方便地移值。 ?
? ?
?   Query和Criteria接口 ?
? ?
?   Query接口讓你方便地對數據庫及持久對象進行查詢,它可以有兩種表達方式:HQL語言或本地數據庫的SQL語句。Query經常被用來綁定查詢參數、限制查詢記錄數量,并最終執行查詢操作。 ?
? ?
?   Criteria接口與Query接口非常類似,它允許你創建并執行面向對象的標準化查詢。 ?
? ?
?   值得注意的是Query接口也是輕量級的,它不能在Session之外使用。 ?
? ?
?   Callback ? 接口 ? ?
? ?
?   當一些有用的事件發生時――例如持久對象的載入、存儲、刪除時,Callback接口會通知Hibernate去接收一個通知消息。一般而言,Callback接口在用戶程序中并不是必須的,但你要在你的項目中創建審計日志時,你可能會用到它。

轉載于:https://www.cnblogs.com/caobuzheng/p/4313739.html

總結

以上是生活随笔為你收集整理的hibernate中SessionFactory,Session的理解?的全部內容,希望文章能夠幫你解決所遇到的問題。

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