sessionFactory與session以及datasource

sessionFactory與session以及datasource

標籤: sshSSHSShjava

2012-12-13 10:15 6221人閱讀 評論(1) 舉報mysql

 分類:sql

JAVA(112) 數據庫

版權聲明:本文爲博主原創文章,未經博主容許不得轉載。安全

      1.sessionFactory是線程安全的,是session的工廠類。SessionFactory並非輕量級的!實際上它的設計者的意圖是讓它能在整個應用中共享。典型地來講,一個項目一般只須要一個SessionFactory就夠了,可是當你的項目要操做多個數據庫時,那你必須爲每一個數據庫指定一個SessionFactory。  SessionFactory在hibernate中實際起到了一個緩衝區的做用,它緩衝了Hibernate自動生成的SQL語句和一些其它的映射數據,還緩衝了一些未來有可能重複利用的數據。session

     2. session是由sessionfactory來建立,能夠建立不少session。Session接口對於Hibernate   開發人員來講是一個最重要的接口。然而在Hibernate中,實例化的Session是一個輕量級的類,建立和銷燬它都不會佔用不少資源。在客戶程序中,可能會不斷地建立以及銷燬Session對象,若是Session的開銷太大,會給系統帶來不良影響。但值得注意的是 Session對象是非線程安全的,所以在你的設計中,最好是一個線程只建立一個Session對象。   在Hibernate的設計者的頭腦中,他們將session看做介於數據鏈接與事務管理一種中間接口。咱們能夠將session想象成一個持久對象的緩衝區,Hibernate能檢測到這些持久對象的改變,並及時刷新數據庫。咱們有時也稱Session是一個持久層管理器,由於它包含這一些持久層相關的操做,諸如存儲持久對象至數據庫,以及從數據庫從得到它們。請注意,Hibernate   的session不一樣於JSP應用中的HttpSession。當咱們使用session這個術語時,咱們指的是Hibernate中的session,而咱們之後會將HttpSesion對象稱爲用戶session。ssh

     3.datasource數據源是注入給sessionfactory的,而後關聯到session中。spa

     4.sessionFactory須要注入給DAO,hibernateDaoSupport有個屬性就是sessionFactory,因爲你的Dao類都繼承他,因此向DAO類中注入sessionFactory時,其實就是向hibernateDaoSupport中注入了.net

相關文章
相關標籤/搜索