posts - 66,  comments - 11,  trackbacks - 0
             Hibernate基礎配置選項主要圍繞SessionFactory展開:
             在hibernate.cfg.xml配置文件中,我們可以通過mapping節點配置需要加載的Hibernate映射文件,如果選用了propertie

          形式的配置文件(hibernate.properties),由于缺乏相應的配置條目,這時候就需要通過編碼進行加載:
          Configuration cfg = new Configuration().addFile("TUser.hbm.xml").addClass(com.redsage.db.entity.TGroup.class)
          1、添加位于CLASSPATH根目錄下的TUser.hbm.xml映射文件
          2、以class形式加載映射實體類com.readsage.db.entity.TGroup

             在Hibernate中,可以設置2種數據庫訪問策略:一種是根據指定的JDBC參數進行數據庫連接,由Hibernate來完成連接管

          理過程:另外一種則是通過JNDI完成數據庫連接獲取。
          1、數據庫適配器
          hibernate.dialect net.sf.hibernate.dialect.MySQLDialect
          2、數據庫JDBC驅動類
          hibernate.connection.driver_class com.mysql.jdbc.Driver
          JNDI配置:
          hibernate.connection.datasource jdbc/test
          3、數據庫URL
          hibernate.connection.url jdbc:mysql://localhost/sample
          4、數據庫用戶名
          hibernate.connection.username root
          5、數據庫密碼
          hiberante.connection.password

              當我們使用JDBC方式訪問數據庫時,可以為其指定數據庫連接池實現,目前Hibernate支持4種連接池實現組件:
          C3P0:
          hibernate.c3p0.max_size 2
          hibernate.c3p0.min_size 2
          //獲得連接的超時時間,如果超過這個時間,會拋出異常,單位毫秒
          hibernate.c3p0.timeout 5000
          //最大的PreparedStatement的數量
          hibernate.c3p0.max_statements 100
          //每隔3000秒檢查連接池里的空閑連接 ,單位是秒
          hibernate.c3p0.idle_test_period 3000
          //當連接池里面的連接用完的時候,C3P0一下獲取的新的連接數
          hibernate.c3p0.acquire_increment 2
          //每次都驗證連接是否可用
          hibernate.c3p0.validate false
          hibernate.connection.provider_class net.sf.hibernate.connection.C3p0ConnectionProvider

          解釋:
          hibernate.c3p0.timeout,這個表示連接池中的連接對象在多長時間沒有使用過后,就應該被銷毀
          hibernate.c3p0.idle_test_period ,這個表示連接池檢測線程多長時間檢測一次池內的所有鏈接對象是否超時
          注意:連接對象自己不會把自己從連接池中移除,而是專門有一個線程按照一定的時間間隔

          (hibernate.c3p0.idle_test_period )來做這件事,這個線程通過比較連接對象最后一次被使用時間和當前時間的時間差來

          和hibernate.c3p0.timeout做對比,進而決定是否銷毀這個連接對象。

          DBCP:
          //連接池的最大活動個數
          hibernate.dbcp.maxActive 100
          //當連接池中的連接已經被耗盡的時候,DBCP將怎樣處理( 0 = 失敗, 1 = 等待, 2= 增長)
          hibernate.dbcp.whenExhaustedAction 1
          //最大等待時間
          hibernate.dbcp.maxWait 120000
          //沒有人用連接的時候,最大閑置的連接個數。
          hibernate.dbcp.maxIdle 10
          hibernate.dbcp.ps.maxActive 100
          hibernate.dbcp.ps.whenExhaustendAction 1
          hibernate.dbcp.ps.maxWait 120000
          hibernate.dbcp.ps.maxIdle 10

          //給出一條簡單的sql語句進行驗證
          hibernate.dbcp.validationQuery select 1 from dual
          //在取出連接時進行有效驗證
          hibernate.dbcp.testOnBorrow true
          //在放回連接時進行有效驗證
          hibernate.dbcp.testOnreturn false
          //Hibernate已經實現了DBCP Provider實現,別忘了在下面的鍵值去掉#字符
          hibernate.connection.provider_class net.sf.hibernate.connection.DBCPConnectionProvider
          posted on 2009-10-11 11:11 王永慶 閱讀(294) 評論(0)  編輯  收藏 所屬分類: HIBERNATE
          <2009年10月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          關注blogs

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 上林县| 苏尼特右旗| 彰武县| 玛曲县| 奉贤区| 安陆市| 兰考县| 武强县| 虎林市| 隆尧县| 永登县| 陆良县| 新蔡县| 文化| 手游| 大邑县| 屯留县| 井冈山市| 南宫市| 石屏县| 阳曲县| 十堰市| 美姑县| 南开区| 桐城市| 潮州市| 鲜城| 四子王旗| 陇南市| 延边| 屏南县| 钟祥市| 湘乡市| 张家界市| 彝良县| 兴文县| 漳平市| 霞浦县| 顺平县| 特克斯县| 红河县|