久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Hibernate4之配置詳解

 KILLKISS 2013-07-26
Hibernate基本配置其實(shí)就是SessionFactory的配置,,所有配置都在<session-factory/>標(biāo)簽之內(nèi),。但是<session-factory/>標(biāo)簽又可以分成3個(gè)部分的配置:

1.JDBC連接參數(shù)的基本配置
2.Hibernate連接池的參數(shù)配置
3.注冊(cè)O(shè)RM映射文件的配置


Hibernate4和Hibernate3在配置上的一些區(qū)別:
連接池c3p0的配置
由于Hibernate自己實(shí)現(xiàn)的連接池不太好,在項(xiàng)目中,,建議使用工業(yè)級(jí)的連接池,,比如:c3p0,Hibernate發(fā)行包中帶有c3p0的專用jar包hibernate-c3p0-4.1.4.Final.jar,,在以前的Hibernate3.X版本中是直接在核心jar包里面的,,在4.X版本之后包名做出來調(diào)整,大家使用的時(shí)候需要注意了,。


TransactionFactory有三個(gè)標(biāo)準(zhǔn)(內(nèi)建)的選擇:
1:委托給數(shù)據(jù)庫(JDBC)事務(wù)(默認(rèn))
Hibernate3:org.hibernate.transaction.JDBCTransactionFactory
Hibernate4:org.hibernate.engine.transaction.internal.jdbc.JDBCTransactionFactory

2:JTA事務(wù),,如果在上下文環(huán)境中存在運(yùn)行著的事務(wù)(如, EJB會(huì)話Bean的方法), 則委托給容器管 理的事務(wù), 否則,將啟動(dòng)一個(gè)新的事務(wù),,并使用Bean管理的事務(wù).
Hibernate3: org.hibernate.transaction.JTATransactionFactory
Hibernate4: org.hibernate.engine.transaction.internal.jta.JTATransactionFactory

3:委托給容器管理的JTA事務(wù)
Hibernate3: org.hibernate.transaction.CMTTransactionFactory
Hibernate4:org.hibernate.engine.transaction.internal.jta.CMTTransactionFactory
也可以定義屬于你自己的事務(wù)策略 (如, 針對(duì)CORBA的事務(wù)服務(wù))


Hibernate4連接池C3P0基本配置

Xml代碼  收藏代碼
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE hibernate-configuration PUBLIC  
  3.           "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
  4.           "http://hibernate./hibernate-configuration-3.0.dtd">  
  5. <hibernate-configuration>  
  6.   
  7. <session-factory>  
  8.     <property name="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:orcl</property>  
  9.     <property name="connection.username">username</property>  
  10.     <property name="connection.password">password</property>  
  11.     <!-- 數(shù)據(jù)庫JDBC驅(qū)動(dòng)類名 -->  
  12.     <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>  
  13.     <!-- 數(shù)據(jù)庫方言 -->  
  14.     <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>  
  15.     <!-- ddl語句自動(dòng)建表 -->  
  16.     <property name="hbm2ddl.auto">none</property>  
  17.     <property name="show_sql">true</property>  
  18.     <property name="format_sql">true</property>  
  19.       
  20.     <!-- 連接池配置 -->  
  21.     <property name="hibernate.connection.provider_class">  
  22.         org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider  
  23.     </property>  
  24.     <!-- 連接池中JDBC連接的最小數(shù)量,。Hibernate默認(rèn)為1 -->  
  25.     <property name="hibernate.c3p0.min_size">5</property>  
  26.     <!-- 連接池中JDBC連接的最大數(shù)量。Hibernate默認(rèn)為100 -->  
  27.     <property name="hibernate.c3p0.max_size">20</property>  
  28.     <!-- 何時(shí)從連接池中移除一個(gè)空閑的連接(以秒為單位)時(shí),。Hibernate默認(rèn)為0,,永不過期 -->  
  29.     <property name="hibernate.c3p0.timeout">300</property>  
  30.     <!-- 被緩存的預(yù)編譯語句數(shù)量。用來提高性能,。Hibernate默認(rèn)為0,,緩存不可用-->  
  31.     <property name="hibernate.c3p0.max_statements">100</property>  
  32.     <!-- 一個(gè)連接被自動(dòng)驗(yàn)證前的閑置時(shí)間(以秒為單位)。Hibernate默認(rèn)為0 -->  
  33.     <property name="hibernate.c3p0.idle_test_period">3000</property>  
  34.       
  35.     <!-- 注冊(cè)O(shè)RM映射文件 -->  
  36.     <mapping class="com....." />  
  37.       
  38. </session-factory>  
  39. </hibernate-configuration>  



Hibernate配置屬性
屬性名用途取值
hibernate.dialect一個(gè)Hibernate Dialect類名允許Hibernate針對(duì)特定的關(guān)系數(shù)據(jù)庫生成優(yōu)化的SQLfull.classname.of.Dialect
hibernate.show_sql輸出所有SQL語句到控制臺(tái). 有一個(gè)另外的選擇是把org.hibernate.SQL這個(gè)log category設(shè)為debugtrue & false
hibernate.format_sql在log和console中打印出更漂亮的SQLtrue & false
hibernate.default_schema在生成的SQL中, 將給定的schema/tablespace附加于非全限定名的表名上.SCHEMA_NAME
hibernate.default_catalog在生成的SQL中, 將給定的catalog附加于非全限定名的表名上.CATALOG_NAME
hibernate.session_factory_nameSessionFactory創(chuàng)建后,,將自動(dòng)使用這個(gè)名字綁定到JNDI中.jndi/composite/name
hibernate.max_fetch_depth為單向關(guān)聯(lián)(一對(duì)一, 多對(duì)一)的外連接抓?。╫uter join fetch)樹設(shè)置最大深度. 值為0意味著將關(guān)閉默認(rèn)的外連接抓取.建議在0到3之間取值
hibernate.default_batch_fetch_size為Hibernate關(guān)聯(lián)的批量抓取設(shè)置默認(rèn)數(shù)量. 建議的取值為4, 8, 和16
hibernate.default_entity_mode為由這個(gè)SessionFactory打開的所有Session指定默認(rèn)的實(shí)體表現(xiàn)模式. dynamic-map, dom4j, pojo
hibernate.order_updates強(qiáng)制Hibernate按照被更新數(shù)據(jù)的主鍵,為SQL更新排序,。這么做將減少在高并發(fā)系統(tǒng)中事務(wù)的死鎖,。 true & false
hibernate.generate_statistics如果開啟, Hibernate將收集有助于性能調(diào)節(jié)的統(tǒng)計(jì)數(shù)據(jù).true & false
hibernate.use_identifer_rollback如果開啟, 在對(duì)象被刪除時(shí)生成的標(biāo)識(shí)屬性將被重設(shè)為默認(rèn)值. true & false
hibernate.use_sql_comments如果開啟, Hibernate將在SQL中生成有助于調(diào)試的注釋信息, 默認(rèn)值為false. true & false


JDBC和連接(connection)屬性

屬性名用途取值
hibernate.jdbc.fetch_size非零值,指定JDBC抓取數(shù)量的大小 (調(diào)用Statement.setFetchSize()).  hibernate.jdbc.batch_size  非零值,,允許Hibernate使用JDBC2的批量更新.建議取5到30之間的值
hibernate.jdbc.batch_versioned_data如果你想讓你的JDBC驅(qū)動(dòng)從executeBatch()返回正確的行計(jì)數(shù) , 那么將此屬性設(shè)為true(開啟這個(gè)選項(xiàng)通常是安全的). 同時(shí),,Hibernate將為自動(dòng)版本化的數(shù)據(jù)使用批量DML. 默認(rèn)值為false.true & false
hibernate.jdbc.factory_class選擇一個(gè)自定義的Batcher.多數(shù)應(yīng)用程序不需要這個(gè)配置屬性.classname.of.Batcher
hibernate.jdbc.use_scrollable_resultset允許Hibernate使用JDBC2的可滾動(dòng)結(jié)果集. 只有在使用用戶提供的JDBC連接時(shí),這個(gè)選項(xiàng)才是必要的, 否則Hibernate會(huì)使用連接的元數(shù)據(jù).true & false
hibernate.jdbc.use_streams_for_binary在JDBC讀寫binary (二進(jìn)制)或serializable (可序列化) 的類型時(shí)使用流(stream)(系統(tǒng)級(jí)屬性).true & false
hibernate.jdbc.use_get_generated_keys在數(shù)據(jù)插入數(shù)據(jù)庫之后,,允許使用JDBC3 PreparedStatement.getGeneratedKeys() 來獲取數(shù)據(jù)庫生成的key(鍵),。需要JDBC3+驅(qū)動(dòng)和JRE1.4+, 如果你的數(shù)據(jù)庫驅(qū)動(dòng)在使用Hibernate的標(biāo) 識(shí)生成器時(shí)遇到問題,請(qǐng)將此值設(shè)為false. 默認(rèn)情況下將使用連接的元數(shù)據(jù)來判定驅(qū)動(dòng)的能力.true & false
hibernate.connection.provider_class自定義ConnectionProvider的類名, 此類用來向Hibernate提供JDBC連接.classname.of.ConnectionProvider
hibernate.connection.isolation設(shè)置JDBC事務(wù)隔離級(jí)別. 查看java.sql.Connection來了解各個(gè)值的具體意義, 但請(qǐng)注意多數(shù)數(shù)據(jù)庫都不支持所有的隔離級(jí)別. 1, 2, 4, 8
hibernate.connection.autocommit允許被緩存的JDBC連接開啟自動(dòng)提交(autocommit) (不建議).true & false
hibernate.connection.release_mode指定Hibernate在何時(shí)釋放JDBC連接. 默認(rèn)情況下,直到Session被顯式關(guān)閉或被斷開連接時(shí),才會(huì)釋放JDBC連接. 對(duì)于應(yīng)用程序服務(wù)器的JTA數(shù)據(jù)源, 你應(yīng)當(dāng)使用after_statement, 這樣在每次JDBC調(diào)用后,,都會(huì)主動(dòng)的釋放連接. 對(duì)于非JTA的連接, 使用after_transaction在每個(gè)事務(wù)結(jié)束時(shí)釋放連接是合理的. auto將為JTA和CMT事務(wù)策略選擇after_statement, 為JDBC事務(wù)策略選擇after_transaction. auto (默認(rèn)) & on_close & after_transaction & after_statement (這些設(shè)置僅對(duì)通過SessionFactory.openSession得到的Session起作用,。對(duì)于通過SessionFactory.getCurrentSession得到的Session,所配置的CurrentSessionContext實(shí)現(xiàn)控制這些Session的連接釋放模式
hibernate.connection.<propertyName>將JDBC屬性propertyName傳遞到DriverManager.getConnection()中去.
hibernate.jndi.<propertyName>將屬性propertyName傳遞到JNDI InitialContextFactory中去.



Hibernate緩存屬性

屬性名用途取值
hibernate.cache.provider_class自定義的CacheProvider的類名.classname.of.CacheProvider
hibernate.cache.use_minimal_puts以頻繁的讀操作為代價(jià), 優(yōu)化二級(jí)緩存來最小化寫操作. 在Hibernate3中,,這個(gè)設(shè)置對(duì)的集群緩存非常有用, 對(duì)集群緩存的實(shí)現(xiàn)而言,,默認(rèn)是開啟的.true & false
hibernate.cache.use_query_cache允許查詢緩存, 個(gè)別查詢?nèi)匀恍枰辉O(shè)置為可緩存的. true & false
hibernate.cache.use_second_level_cache能用來完全禁止使用二級(jí)緩存. 對(duì)那些在類的映射定義中指定<cache>的類,會(huì)默認(rèn)開啟二級(jí)緩存. true & false
hibernate.cache.query_cache_factory自定義實(shí)現(xiàn)QueryCache接口的類名, 默認(rèn)為內(nèi)建的StandardQueryCache.classname.of.QueryCache
hibernate.cache.region_prefix二級(jí)緩存區(qū)域名的前綴.prefix
hibernate.cache.use_structured_entries強(qiáng)制Hibernate以更人性化的格式將數(shù)據(jù)存入二級(jí)緩存.true & false


Hibernate事務(wù)屬性

屬性名用途取值
hibernate.transaction.factory_class一個(gè)TransactionFactory的類名, 用于Hibernate Transaction API (默認(rèn)為JDBCTransactionFactory).classname.of.TransactionFactory
jta.UserTransaction一個(gè)JNDI名字,,被JTATransactionFactory用來從應(yīng)用服務(wù)器獲取JTA UserTransaction.jndi/composite/name
hibernate.transaction.manager_lookup_class一個(gè)TransactionManagerLookup的類名 - 當(dāng)使用JVM級(jí)緩存,,或在JTA環(huán)境中使用hilo生成器的時(shí)候需要該類.classname.of.TransactionManagerLookup
hibernate.transaction.flush_before_completion如果開啟, session在事務(wù)完成后將被自動(dòng)清洗(flush)。 現(xiàn)在更好的方法是使用自動(dòng)session上下文管理true & false
hibernate.transaction.auto_close_session如果開啟, session在事務(wù)完成后將被自動(dòng)關(guān)閉true & false


其他屬性

屬性名用途取值
hibernate.current_session_context_class為"當(dāng)前" Session指定一個(gè)(自定義的)策略jta & thread & managed & custom.Class
hibernate.query.factory_class選擇HQL解析器的實(shí)現(xiàn).org.hibernate.hql.ast.ASTQueryTranslatorFactory 和org.hibernate.hql.classic.ClassicQueryTranslatorFactory
hibernate.query.substitutions將Hibernate查詢中的符號(hào)映射到SQL查詢中的符號(hào) (符號(hào)可能是函數(shù)名或常量名字).hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC
hibernate.hbm2ddl.auto在SessionFactory創(chuàng)建時(shí),,自動(dòng)檢查數(shù)據(jù)庫結(jié)構(gòu),,或者將數(shù)據(jù)庫schema的DDL導(dǎo)出到數(shù)據(jù)庫. 使用 create-drop時(shí),在顯式關(guān)閉SessionFactory時(shí),將drop掉數(shù)據(jù)庫schema.validate & update & create & create-drop
hibernate.cglib.use_reflection_optimizer開啟CGLIB來替代運(yùn)行時(shí)反射機(jī)制(系統(tǒng)級(jí)屬性). 反射機(jī)制有時(shí)在除錯(cuò)時(shí)比較有用. 注意即使關(guān)閉這個(gè)優(yōu)化, Hibernate還是需要CGLIB. 你不能在hibernate.cfg.xml中設(shè)置此屬性.true & false



SQL方言

RDBMS方言
DB2 org.hibernate.dialect.DB2Dialect
DB2 AS/400 org.hibernate.dialect.DB2400Dialect
DB2 OS390 org.hibernate.dialect.DB2390Dialect
PostgreSQL org.hibernate.dialect.PostgreSQLDialect
MySQL org.hibernate.dialect.MySQLDialect
MySQL with InnoDB org.hibernate.dialect.MySQLInnoDBDialect
MySQL with MyISAM org.hibernate.dialect.MySQLMyISAMDialect
Oracle (any version) org.hibernate.dialect.OracleDialect
Oracle 9i/10g org.hibernate.dialect.Oracle9Dialect
Sybase org.hibernate.dialect.SybaseDialect
Sybase Anywhere org.hibernate.dialect.SybaseAnywhereDialect
Microsoft SQL Server org.hibernate.dialect.SQLServerDialect
SAP DB org.hibernate.dialect.SAPDBDialect
Informix org.hibernate.dialect.InformixDialect
HypersonicSQL org.hibernate.dialect.HSQLDialect
Ingres org.hibernate.dialect.IngresDialect
Progress org.hibernate.dialect.ProgressDialect
Mckoi SQL org.hibernate.dialect.MckoiDialect
Interbase org.hibernate.dialect.InterbaseDialect
Pointbase org.hibernate.dialect.PointbaseDialect
FrontBase org.hibernate.dialect.FrontbaseDialect
Firebird org.hibernate.dialect.FirebirdDialect

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多