国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

強人Hibernate文檔筆記(中)

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

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)包含標簽指定值在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配置使用自己的定義起作用。

【編輯推薦】

  1. 強人Hibernate文檔筆記(上)
  2. 初學者適用的Hibernate學習方法
  3. Hibernate實戰(第2版)讀書筆記
  4. Hibernate一對多關系的處理
  5. Hibernate的性能優化
責任編輯:仲衡 來源: CSDN博客
相關推薦

2009-06-16 15:32:24

Hibernate文檔

2009-06-16 15:52:18

Hibernate文檔

2009-09-29 17:22:30

Hibernate S

2009-09-29 16:21:31

Hibernate單元

2009-06-18 11:25:26

Hibernate L

2009-09-27 14:56:22

Hibernate H

2009-09-24 13:03:38

Hibernate C

2009-06-17 16:08:58

Hibernate C

2009-09-24 14:28:23

Hibernate抓取

2009-06-18 14:20:45

hibernate實戰

2009-06-16 13:09:15

Hibernate實戰Hibernate

2009-06-12 16:00:13

Session方法Hibernate

2009-09-24 13:25:58

Hibernate m

2009-06-26 16:15:04

Criteria的用法Hibernate

2009-06-18 10:07:03

CriteriaHibernate

2009-06-26 10:19:00

Clob字段Hibernate

2009-09-22 09:40:03

cascade和invHibernate

2009-10-26 10:31:20

linux庫

2011-08-23 11:13:56

Lua

2009-06-29 08:59:05

hbm的generat
點贊
收藏

51CTO技術棧公眾號

中文字幕在线观看不卡视频| 欧美综合久久久| 免费在线一区二区| aiai久久| 伊人精品在线观看| 亚洲91av| 欧美图区在线视频| 高清免费观看在线| 欧美精彩视频一区二区三区| 日本在线视频www色| 亚洲先锋成人| 成人有码在线播放| 色综合色综合| 免费在线观看视频一区| 人人澡人人澡人人看欧美| 日本亚州欧洲精品不卡| 日韩中文字幕国产精品| 性感美女一区二区在线观看| 日韩av影视综合网| 国产网站在线| 日韩欧美资源站| av在线免费网站| 欧美成人video| 福利写真视频网站在线| 精品美女一区二区| 超碰97免费在线| 99精品综合| 国产精品免费区二区三区观看 | 成人午夜看片网址| 波多野结衣 作品| 成人免费精品视频| 99免费视频观看| 成人欧美一区二区三区| 日本夜爽爽一二区| 在线视频你懂得一区| 日本成人在线播放| 精品偷拍各种wc美女嘘嘘| 户外露出一区二区三区| 欧美成人一区在线| 欧美码中文字幕在线| 国产欧美日韩丝袜精品一区| 日韩精品欧美| 玖玖玖精品中文字幕| 精品一二三四区| 国产精品wwwww| 亚洲一区二区三区中文字幕| 高清在线观看av| 日韩视频国产视频| 全球中文成人在线| 国产精品69精品一区二区三区| 欧美在线日韩| 潘金莲一级淫片aaaaa免费看| 91色在线porny| 中文字幕在线资源| 日韩精品一区二区三区中文不卡| av在线不卡免费| 久久国产精品首页| 一本精品一区二区三区| 中文字幕一区二区三区5566| 你懂的好爽在线观看| 亚洲电影免费观看高清完整版在线| 国产精品蜜月aⅴ在线| 日韩美女视频免费在线观看| 欧美激情1区2区3区| 老司机午夜免费福利视频| 国产精品视频一二| 很黄的网站在线观看| 91免费版黄色| 最新天堂中文在线| 成人h视频在线| 亚洲婷婷在线视频| 欧洲亚洲精品视频| 性欧美长视频| 成人在线播放网址| 中文字幕一区二区三区av| 风间由美一区| 亚洲欧美日韩中文在线| 亚洲视频分类| 亚洲国产欧洲综合997久久| 中文字幕在线不卡国产视频| www.久久ai| 国产脚交av在线一区二区| 麻豆国产精品一区二区三区| 久久人人爽人人爽人人av| 亚洲成在线观看| 成人在线高清| 风间由美久久久| 久久精品一区二区三区四区| 一区二区三区视频在线观看视频| 欧美人与物videos| 欧美亚洲专区| 最近最新mv在线观看免费高清| 亚洲欧美在线磁力| 99热这里只有成人精品国产| 日本xxxxwwww| 中文字幕av一区二区三区谷原希美| 女同性一区二区三区人了人一 | 91精品国产综合久久精品麻豆| 亚洲视频一起| 午夜午夜精品一区二区三区文| 亚洲人成在线观看一区二区| 7777kkk亚洲综合欧美网站| 成人看片人aa| 欧美激情一区三区| 黑人巨大精品欧美一区二区桃花岛| 成人片在线免费看| 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲天堂av线| 337p亚洲精品色噜噜狠狠p| 国产亚洲精品美女久久久久| 精品乱码一区二区三四区视频| 在线视频亚洲欧美| 日韩综合一区二区| 性欧美精品孕妇| 狠狠色狠狠色综合| 97福利网站在线观看视频| 久久影院资源网| 国产一区二区美女| 免费a级毛片在线播放| 国产成人在线一区二区| a亚洲天堂av| 亚洲美女久久精品| 日本不卡久久| 欧美老女人第四色| 亚洲成人中文| 午夜亚洲成人| 91精品国产综合久久香蕉的用户体验| 国产精品乱码一区二区三区软件 | 亚洲成人一区在线观看| 亚洲人成网站在线观看播放| 欧美日韩亚洲国产综合| 亚洲一区 二区 三区| 性网站在线播放| 成人疯狂猛交xxx| 欧美日韩亚洲网| 欧美日韩国产探花| 加勒比一区二区三区在线| 国产成人aa精品一区在线播放 | 国产午夜一区| 久草在线新视觉| 国产精品美乳在线观看| 亚洲一卡二卡三卡四卡 | 麻豆精品视频在线观看视频| 黄a在线观看| 亚洲精品成人久久久998| 精品国产伦理网| 国内精品伊人久久久久av影院| 国产精品一二三产区| 青青草综合在线| 久久国产精品久久久久久久久久| 久久青草国产手机看片福利盒子 | 久久99偷拍| 3d黄动漫网站| 国产精彩精品视频| 日韩欧美在线观看视频| 国一区二区在线观看| 黄视频在线观看免费| 国产私拍一区| 亚洲国产美女精品久久久久∴| 国产麻豆精品theporn| 国产精品亚洲一区二区在线观看 | 最新中文字幕在线| 国产精品成人一区二区三区| 91精品国模一区二区三区| 久久综合伊人| 国产精品亚洲一区二区三区在线观看 | 5858s免费视频成人| 国产一区二区三区免费播放| 亚洲最大的免费视频网站| 涩涩视频免费网站| 国产精品一区二区三区免费观看| 日韩欧美精品三级| 久久综合色之久久综合| 精品在线观看入口| 免费在线看黄| 无码aⅴ精品一区二区三区浪潮 | 不卡一二三区| 欧美精品aaaa| 亚洲最大成人网色| 亚洲欧美日韩一区二区三区在线| 国产人伦精品一区二区| 欧美亚洲激情| 手机在线免费看av| 国产欧美在线一区| 91在线视频导航| 亚洲精品中文字幕有码专区| www.爱久久.com| 国产精品88久久久久久| а√天堂中文在线资源8| 黄www在线观看| 韩国成人av| 美女啪啪无遮挡免费久久网站| 天天综合天天综合色| 经典一区二区三区| 日本欧美黄色片| 国产精品∨欧美精品v日韩精品| 日韩一区二区免费高清| 日本一区二区综合亚洲| 久久国产精品亚洲77777| 2021年精品国产福利在线|