青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

xiaoguozi's Blog
Pay it forword - 我并不覺的自豪,我所嘗試的事情都失敗了······習慣原本生活的人不容易改變,就算現狀很糟,他們也很難改變,在過程中,他們還是放棄了······他們一放棄,大家就都是輸家······讓愛傳出去,很困難,也無法預料,人們需要更細心的觀察別人,要隨時注意才能保護別人,因為他們未必知道自己要什么·····

Hibernate文檔筆記共分為三個部分,此處是第二部分,講述了Contextual Sessions、Configuration、獲取SessionFactory和JDBC Connections(Session是對JDBC連接的封裝)。

五、Contextual Sessions

許多應用程序需要一種和上下文有關聯Hibernate session,這樣的session是指貫穿于給定環境的上下文中都有效的session。無論如何,貫穿于應用程序應用上下文由什么組成的清晰度不同,不同的上下文針對當前的概念有不同的范圍。

使用Hibernate 3.0以前版本的應用程序,趨于使用自已實現的基于ThreadLocal來維護前后關系的session、諸如HibernateUtil的幫助類;或使用基于代理或攔截機制的第三方的框架(Spring或Pico)。

從Hibernate 3.0.1,Hibernate加入了SessionFactory.getCurrentSession()方法。最初,假定使用JTA事務定義了當前session的scope和context。Hibernate團隊維護時,給定了成熟的卓越的JTA TransactionManager的實現方式,多數(但不是所有)應用程序應該使JTA transaction management,不論它是否發布到一個JEE容器中。基于這一點,基于用JTA來維護上下文關系中的session應該是必須的。

無論如何,在Hibernate 3.1,SessionFactory.getCurrentSession()之后的處理,是可以被插拔的,也就是說可以session的范圍和上下文。新擴展接口(org.hibernate.context.CurrentSessionContext)和新的配置參數(hibernate.current_session_context_class)被加入,允許插拔,也就是說可以定義session的范圍和上下文。

細節可以查看org.hibernate.context.CurrentSessionContext的文檔。它定義了一個currentSession()方法,負責跟蹤與當前上下文相關聯的session。Hibernate提供了這個接口的三種實現方式。

1.org.hibernate.context.JTASessionContext

當前session,通過JTA事務跟蹤和標識生命周期。這里的處理過程在處理方法上和老JTA是相似的。

2.org.hibernate.context.ThreadLocalSessionContext

當前session,通過當前執行的線程來跟蹤。

3.org.hibernate.context.ManagedSessionContext

當前session,通過當前執行的線程來跟蹤。你是負責綁定和解除當前session到執行線程通過使用這個類的靜態方法。該類不會open、flush、close session。

前兩個實現類,提供了“一個session對應一個數據庫事務”的編程模式,也就是眾所周知的“session-per-request”模式。Hibernate session的開始和結束,是以數據庫中事務的執行時間為依據的。如果你使用編程方式劃分事務,用簡單的JSE需不是JTA,你應該考慮使用Hibernate事務APIs來隱藏低層的事務代碼。如果你使用的是JTA,使用JTA的接口來劃分事務。如果你在一個支持CMT(Container Management Transaction)的容器運行程序,事務是通過聲明定義,在你程序中不需要任何的代碼來劃分事務。

Hibernate.current_session_context_class參數應該指定,一個org.hibernate.context.CurrentSessionContext的實現類。如果配置參數沒有被設置,而是配置了一個org.hibernate.transaction.TransactionManagerLookup被設置,Hibernate將使用org.hibernate.context.JTASessionContext,這里要考慮向后兼容。典型的情況下,這個參數是使用的類的名字。對于Hibernate提供的三個實現類,有對應的三個簡短名,“jta”、“thread”、“managed”。

六、Configuration

1.編程配置

一個org.hibernate.cfg.Configuration的實例表示一個應用程序的所有Java類型到數據庫類型的映射。org.hibernate.cfg.Configuration是用來建造一個org.hibernate.SessionFactory。被編譯的映射是來自所有的XML映射文件。

片斷1.

  1. Configuration cfg = new Configuration().addResource(“test.hbm.xml”); 

片斷2.

  1. Configuration cfg = new Configuration().addClass(com.test.class); 

片斷3.

  1. Configuration cfg = new Configuration().setProperty(“hibernate.dialect”, “org.hibernate.dialect.DB2Dialect”); 

Configuration可以接收的選項:

(1)傳遞一個java.util.Properties到Configuration.setProperties()。

(2)放一個hibernate.properties文件到類路徑的根目錄。

(3)設置系統properties,通過java –Dproperty=value。

(4)包含<:property>標簽指定值在hibernate.cfg.xml文件。

org.hibernate.cfg.Configuration對象是有意作為一個開始時間生成的對象的,一旦SessionFactory被創建,他將被拋棄掉。

七、獲取SessionFactory

當org.hibernate.cfg.Configuration解析完所有的映射文件后,應用程序應該獲取一個org.hibernate.Session實例的工廠。這個工廠是被應用程序的所有線程共享的。

  1. SessionFactory sessionFactory = cfg.buildSessionFactory(); 

Hibernate允許應用程序實例多個SessionFactory。對于使用多個數據庫的應用程序是非常有用的。

八、JDBC Connections(Session是對JDBC連接的封裝)

通常,你應該使用org.hibernate.SessionFactory來創建或共享JDBC。如果這采用這種方法,是非常簡單的。

  1. Session session = sessionFactory.openSession(); 

當你的操作需要訪問數據庫時,一個JDBC連接就會從連接池中被獲取。

對于這個工作,我們應該給Hibernate提供一些JDBC連接屬性。所有的Hibernate屬性名和語義學都被定義在org.hibernate.cfg.Environment。我們現在描述對于JDBC連接配置的一些更重要的設置。

1.如果你設置以下屬性,Hibernate將獲取或共享連接使用java.sql.DriverManager:

  1. hibernate.connection.driver_class  
  2.  
  3. hibernate.connection.url  
  4.  
  5. hibernate.connection.username  
  6.  
  7. hibernate.connection.password  
  8.  
  9. hibernate.connection.pool_size 

Hibernate自己擁有的連接池算法是沒有發展的。他是為了你的初始接觸使用的,而不是為了你的產品使用的,甚至性能測試時使用。為了更好的性能和穩定性考慮,你應該使用第三方的連接池產品。只需要替換hibernate.connection.pool_size屬性的設置用相應連接池的設置。這將關閉Hibernate內部的連接池。例如,可以使用C3P0。

C3P0是一個開源的JDBC連接池,被放置在Hibernate發布文件的lib目錄下,隨Hibernate一塊發行。如果你設置hibernate.c3p0.*屬性,Hibernate將會使用org.hibernate.connection.C3P0ConnectionProvider為共享連接。如果你想使用proxool作為連接池,你可以通過查閱hibernat.properties或Hibernate站點獲取需要設置的屬性名設置。

C3P0配置舉例,屬性文件片斷:

  1. hibernate.connection.driver_class=  
  2.  
  3. hibernate.connection.url=  
  4.  
  5. hibernate.connection.username=  
  6.  
  7. hibernate.connection.password=  
  8.  
  9. hibernate.c3p0.min_size=  
  10.  
  11. hibernate.c3p0.max_size=  
  12.  
  13. hibernate.c3p0.timeout=  
  14.  
  15. hibernate.c3p0.max_statements=  
  16.  
  17. hibernate.dialect= 

2.對于在應用服務器內運行的程序,多數情況你應該配置Hibernate通過JNDI找到服務器的javax.sql.DataSource來獲取連接。你需要設置以下屬性。

  1. hibernate.connection.datasource  
  2.  
  3. hibernate.jndi.url  (可選)  
  4.  
  5. hibernate.jndi.class  (可選)  
  6.  
  7. hibernate.connection.username  (可選)  
  8.  
  9. hibernate.connection.password  (可選) 

你可以通過實現org.hibernate.connection.ConnectionProvider來定義自己的獲得連接的策略。通過hibernate.connection.provider_class配置使用自己的定義起作用。

posted on 2009-07-17 17:18 小果子 閱讀(173) 評論(0)  編輯 收藏 引用 所屬分類: 學習筆記
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美成人国产一区二区| 亚洲激情视频| 亚洲成在线观看| 亚洲第一精品夜夜躁人人躁| 亚洲大片一区二区三区| 亚洲激情第一区| 洋洋av久久久久久久一区| 99精品视频网| 亚洲欧美日韩国产另类专区| 欧美有码在线观看视频| 久久永久免费| 亚洲精品视频一区| 亚洲欧美第一页| 久久蜜桃资源一区二区老牛| 欧美精品日韩一区| 国产精品久久久久久久久免费樱桃| 国产色婷婷国产综合在线理论片a| 国内精品视频666| 亚洲精品在线二区| 欧美专区日韩视频| 欧美激情免费观看| 亚洲一区二区伦理| 欧美99在线视频观看| 国产精一区二区三区| 亚洲人成人一区二区在线观看| 亚洲欧美日韩系列| 亚洲国产另类精品专区| 亚洲欧美视频一区| 欧美日本不卡| 在线免费观看欧美| 欧美一区二区三区免费看 | 欧美中日韩免费视频| 欧美成人精品在线| 亚洲精品乱码久久久久| 欧美一区成人| 亚洲国产精品视频| 欧美一区影院| 国产精品爱啪在线线免费观看| 亚洲高清久久| 久久精品日产第一区二区三区| 亚洲精品日韩久久| 男同欧美伦乱| 在线成人h网| 久久久久综合网| 亚洲免费在线精品一区| 欧美日韩卡一卡二| 日韩午夜免费| 亚洲高清毛片| 免费观看成人网| 亚洲国产成人精品久久| 久久午夜羞羞影院免费观看| 午夜在线视频一区二区区别| 国产精品国产自产拍高清av王其| 一本色道久久综合狠狠躁篇的优点 | 性做久久久久久久免费看| 亚洲激情综合| 欧美激情国产日韩精品一区18| 在线精品国产成人综合| 久久久久久久激情视频| 欧美一级理论性理论a| 国产精品网曝门| 性伦欧美刺激片在线观看| 在线亚洲美日韩| 国产精品日韩欧美一区二区三区| 香蕉久久精品日日躁夜夜躁| 亚洲专区一区二区三区| 国产日韩欧美麻豆| 麻豆九一精品爱看视频在线观看免费 | 亚洲毛片在线看| 亚洲国产精品嫩草影院| 欧美精品色网| 亚洲天天影视| 亚洲欧美日本另类| 黄网动漫久久久| 欧美激情影音先锋| 欧美日韩国产精品一卡| 亚洲欧洲av一区二区| 欧美一区二区三区视频在线观看| 韩国自拍一区| 亚洲国产综合在线看不卡| 欧美日韩一卡二卡| 欧美在线观看日本一区| 久久人人精品| 一区二区三区四区精品| 亚洲欧美中文字幕| 在线看日韩欧美| 99热这里只有精品8| 国产视频亚洲| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美先锋影音| 亚洲国产欧美久久| 99伊人成综合| 黑人中文字幕一区二区三区| 亚洲高清电影| 国产日韩欧美在线播放不卡| 欧美高清不卡| 国产欧美视频一区二区| 亚洲国产精品久久久久久女王| 国产精品劲爆视频| 欧美国产日韩一区二区三区| 国产精品sss| 免费在线欧美视频| 国产乱子伦一区二区三区国色天香 | 亚洲精品在线一区二区| 亚洲一区久久久| 亚洲日本aⅴ片在线观看香蕉| 亚洲一区二区三区色| 亚洲欧洲一区二区天堂久久| 性亚洲最疯狂xxxx高清| 亚洲午夜国产一区99re久久| 国产日韩在线不卡| 日韩视频在线观看| 亚洲国产三级| 久久精品电影| 欧美影视一区| 欧美性做爰毛片| 亚洲国产婷婷香蕉久久久久久99| 国产亚洲精久久久久久| 99国内精品久久| 亚洲人成网在线播放| 久久精品视频免费观看| 久久国产日本精品| 国产精品丝袜久久久久久app| 亚洲狼人精品一区二区三区| 亚洲国产高清aⅴ视频| 久久国产高清| 久久久99国产精品免费| 国产区日韩欧美| 亚洲欧美日韩人成在线播放| 亚洲免费视频在线观看| 欧美精品在线视频| 亚洲国产精品v| 最新国产成人av网站网址麻豆| 美女久久网站| 你懂的亚洲视频| 亚洲国产va精品久久久不卡综合| 久久精品国产清自在天天线| 久久久久成人精品| 国产亚洲欧美一区二区三区| 欧美一级久久久| 久久在线观看视频| 黄网站免费久久| 久久蜜桃精品| 亚洲国产午夜| 这里只有精品丝袜| 国产精品美女久久久久久久| 亚洲欧美亚洲| 美女在线一区二区| 91久久在线播放| 欧美日韩国产成人在线观看| 99在线|亚洲一区二区| 午夜精品一区二区三区在线| 国产日韩av在线播放| 久久久久久一区二区| 久久综合色88| aa级大片欧美三级| 女人香蕉久久**毛片精品| 99人久久精品视频最新地址| 欧美另类综合| 亚洲一区不卡| 久久免费精品日本久久中文字幕| 韩国三级在线一区| 欧美69视频| 中国成人黄色视屏| 久久久久久综合| 亚洲精品一区二区三区四区高清| 欧美日韩精品久久久| 亚洲欧美日韩精品久久久| 猛男gaygay欧美视频| 日韩一级在线观看| 国产一二三精品| 欧美精品自拍| 欧美一区三区二区在线观看| 亚洲第一精品久久忘忧草社区| 亚洲一区精彩视频| 黄网站色欧美视频| 欧美日韩综合久久| 久久久久久尹人网香蕉| 日韩写真视频在线观看| 久久人人爽国产| 中文一区字幕| 亚洲第一网站免费视频| 欧美日一区二区三区在线观看国产免 | 亚洲第一在线综合网站| 午夜老司机精品| 亚洲电影自拍| 国产欧美短视频| 欧美日韩网址| 欧美 亚欧 日韩视频在线| 午夜在线一区| 亚洲一本视频| av不卡免费看| 亚洲欧洲精品一区二区三区波多野1战4| 久久国产天堂福利天堂| 亚洲影院色在线观看免费| 亚洲人成网站影音先锋播放| 好看的日韩视频| 国产欧美日韩在线观看| 欧美午夜一区二区| 欧美日韩和欧美的一区二区|