成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

Hibernate配置項(xiàng)

Xml 代碼1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

Xml 代碼

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11. ${hibern

ate.cache.provider_class}

12. ${hiber

nate.cache.use_query_cache}

13. ${hibernate.dialect}<

/prop>

14. ${hibernate.hbm2

ddl.auto}

15. ${hibernate.j

dbc.fetch_size}

16. ${hibernate.j

dbc.batch_size}

17. ${hibernate.show_sql

}

18. ${hibernate.format

_sql}

19. ${hibernate.use_sql_

comments}

20. ${hibernate.cache.provider_configuration_file_resource_path}

21.

22.

23.

hibernate.properties

#Oracle方言

# hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

# hibernate.dialect=org.hibernate.dialect.SQLServerDialect

,

#hibernate方言

hibernate.dialect=org.hibernate.dialect.SQLServerDialect

#是否啟用二級緩存,

hibernate.cache.use_query_cache=true

#二級緩存class

# hibernate.cache.provider_class=org.hibernate.cache.NoCacheProvider #

hibernate.cache.provider_class=org.hibernate.cache.SingletonEhCacheProvider

hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider #二級緩存配置文件

hibernate.cache.provider_configuration_file_resource_path=/cache/ehcache.xml

#是否同步數(shù)據(jù)庫結(jié)構(gòu)(自動(dòng)創(chuàng)建|更新|驗(yàn)證數(shù)據(jù)庫表結(jié)構(gòu))

#none: 不做任何操作

#create:每次加載hibernate 時(shí)都會(huì)刪除上一次的生成的表,然后根據(jù)你的model 類再重新來生成新表,哪怕兩次沒有任何改變也要這樣執(zhí)行。會(huì)導(dǎo)致數(shù)據(jù)庫表數(shù)據(jù)丟失。

#create-drop: 每次加載hibernate 時(shí)根據(jù)model 類生成表,但是

sessionFactory 一關(guān)閉, 表就自動(dòng)刪除。

#update:第一次加載hibernate 時(shí)根據(jù)model 類會(huì)自動(dòng)建立起表的結(jié)構(gòu)(前提是先建立好數(shù)據(jù)庫),以后加載hibernate 時(shí)根據(jù) model類自動(dòng)更新表結(jié)構(gòu),即使表結(jié)構(gòu)改變了但表中的行仍然存在不會(huì)刪除以前的行。要注意的是當(dāng)部署到服務(wù)器后,表結(jié)構(gòu)是不會(huì)被馬上建立起來的,是要等 應(yīng)用第一次運(yùn)行起來后才會(huì)。 #validate:驗(yàn)證創(chuàng)建數(shù)據(jù)庫表結(jié)構(gòu),只會(huì)和數(shù)據(jù)庫中的表進(jìn)行比較,不會(huì)創(chuàng)建新表,但是會(huì)插入新值。

hibernate.hbm2ddl.auto=none

#關(guān)于hibernate.jdbc.fetch_size與hibernate.jdbc.batch_size的設(shè)置,可能會(huì)將嚴(yán)重影響Hibernate 的CRUD 性能。

#設(shè)定JDBC 的Statement 讀取數(shù)據(jù)的時(shí)候每次從數(shù)據(jù)庫中取出的記錄條數(shù)。 #Fetch Size 設(shè)的越大,讀數(shù)據(jù)庫的次數(shù)越少,速度越快;Fetch Size 越小,讀數(shù)據(jù)庫的次數(shù)越多,速度越慢。

#MySQL就支持Fetch Size特性

hibernate.jdbc.fetch_size=20

#設(shè)定對數(shù)據(jù)庫進(jìn)行批量刪除,批量更新和批量插入的時(shí)候的批次大小。

#Batch Size越大,批量操作的向數(shù)據(jù)庫發(fā)送sql 的次數(shù)越少,速度就越快。 hibernate.jdbc.batch_size=50

#設(shè)置外連接抓取樹的最大深度取值. 建議設(shè)置為0到3之間

#hibernate.max_fetch_depth

,

#是否顯示最終執(zhí)行的SQL(開發(fā)環(huán)境)

hibernate.show_sql=false

#格式化顯示的SQL

hibernate.format_sql=false

#如果設(shè)置為true ,Hiberante 將為SQL 產(chǎn)生注釋,這樣更利于調(diào)試。默認(rèn)值為false 。取值為true|false。

hibernate.use_sql_comments=false

(附錄) Hibernate 配置項(xiàng):

1.Hibernate 配置項(xiàng)

(1)hibernate.dialect 指定方言后,Hibernate 可以根據(jù)低層數(shù)據(jù)庫自動(dòng)產(chǎn)生優(yōu)化過的SQL 。取值為org.hibenate.dialect.Dialect 的繼承類。多數(shù)情況下,Hibernate 可以根據(jù)低層JDBC 返回的metadata 來判斷。

(2)hibernate.show_sql打印所有的SQL 語句到控制臺(tái),可以通過設(shè)置org.hibernate.SQL 類的日志策略到DEBUG 級,實(shí)現(xiàn)同樣的效果。取值

true|false。

(3)hibernate.format_sql 格式化SQL 語句在打印到控制臺(tái)或?qū)懭肴罩疚募r(shí)。取值true|false。

(4)hibernate.default_schema 在產(chǎn)生SQL 語句時(shí),在表名前加上映射文件給出的表空間(tablespace )或數(shù)據(jù)庫模式(schema )。取值SCHEMA_NAME。

(5)hibernate.default_catalog 在產(chǎn)生SQL 語句時(shí),在表名前加上映射文件給出的catalog 。取值CATALOG_NAME。

(6)hibernate.session_factory_name Hibernate創(chuàng)建

org.hibernate.SessionFactory 實(shí)例后后會(huì)自動(dòng)的將這個(gè)綁定到JNDI 中的名字上。取值jndi/sf。

,

(7)hibernate.max_fetch_depth 設(shè)置對單個(gè)表的外連接數(shù)最大深度。0是屏蔽默認(rèn)的外連接設(shè)置。推薦設(shè)置為0到3之間。

(8)hibernate.default_batch_fetch_size 設(shè)置Hibernate 批量聯(lián)合查詢的尺度。強(qiáng)烈建議。推薦設(shè)置為4、8、16。

(9)hibernate.default_entity_mode 默認(rèn)的實(shí)體表現(xiàn)模式,通過

SessionFactory 打開的所有的Session 。取值,dynamic-map 、dom4j 、pojo 。

(10)hibernate.order_updates 強(qiáng)迫Hibernate 通過被更新項(xiàng)的主鍵值排序SQL 更新。這樣可以在高并發(fā)時(shí),減少事務(wù)死鎖。取值true|false。

(11)hibernate.generate_statistics 如果設(shè)置為true ,Hibernate 將為性能調(diào)整,收集統(tǒng)計(jì)信息。取值true|false。

(12)hibernate.use_identifier_rollback 如果設(shè)置為true ,產(chǎn)生的標(biāo)識屬性將被重置成默認(rèn)值,當(dāng)對象被刪除后。取值為true|false。

(13)hibernate.use_sql_comments 如果設(shè)置為true ,Hiberante 將為SQL 產(chǎn)生注釋,這樣更利于調(diào)試。默認(rèn)值為false 。取值為true|false。

2.Hibernate JDBC和連接的屬性

(1)hibernate.jdbc.fetch_size 指定JDBC 的查詢尺度。通過調(diào)用

(Statement.setFetchSize())。

(2)hibernate.jdbc.batch_size 指定Hibernate 如何使用JDBC2批量更新。取值,推薦5到30。

(3)hibernate.jdbc.batch_versioned_data 設(shè)置這個(gè)屬性為true ,JDBC 將返回executeBatch 執(zhí)行后正確的行數(shù)。打開這個(gè)參數(shù),通常是安全的。Hibernate 將自動(dòng)的譯碼這些數(shù)據(jù)使用批量DML 。默認(rèn)為false 。取值true|false。

(4)hibernate.jdbc.factory_class 選擇一個(gè)定制的

org.hibernate.jdbc.Batcher 。所有的應(yīng)用程序不需要配置這個(gè)屬性。取值,定義工廠的類名。

(5)hibernate.jdbc.use_scrollable_resultset Hibernate使用JDBC2的可滾動(dòng)記錄集。當(dāng)使用用戶提供的JDBC 連接時(shí),需要設(shè)置這個(gè)參數(shù)。否則,Hibernate 使用連接MetaData 。取值true|false。

(6)hibernate.jdbc.use_streams_for_binary 當(dāng)讀或?qū)懚M(jìn)制數(shù)據(jù)或序列化數(shù)據(jù)從JDBC 或到JDBC ,使用流。系統(tǒng)級的數(shù)據(jù)。設(shè)置true|false。

(7)hibernate.jdbc.use_get_generated_keys 在插入后,可以使用JDBC3的PreparedStatement.getGeneratedKeys()中的值找回本地產(chǎn)生的鍵值。要求

,

JDBC3 和JRE1.4 ,如果使用Hibernate identifier generator后你的驅(qū)動(dòng)程序有問題,請?jiān)O(shè)置為false 。默認(rèn)情況下,設(shè)法連接MetaData 來決定。取值,true|false。

(8)hibernate.connection.provider_class 實(shí)現(xiàn)了

org.hibernate.connection.ConnectionProvider 接口的類的名稱,為

Hibernate 提供連接。

(9)hibernate.connection.isolation 設(shè)置JDBC 事務(wù)隔離的級別。檢查

java.sql.Connection 的定義的常量值,但要注意大多數(shù)數(shù)據(jù)庫不支持所有的隔離級別、一些附加的和非標(biāo)準(zhǔn)的隔離級別。取值,1、2、4、8。

(10)hibernate.connection.autocommit JDBC共享連接的自動(dòng)提交。(不推薦)取值,true|false。

(11)hibernate.connection.release_mode 指定什么時(shí)候,Hibernate 應(yīng)該釋放JDBC 連接。默認(rèn)情況下,JDBC 是一直存在,只到Session 是被明確關(guān)閉或斷開連接時(shí)。對于應(yīng)用的服務(wù)器JTA 數(shù)據(jù)源,你應(yīng)該使用after_statement強(qiáng)制釋放JDBC 連接在每個(gè)JDBC 請求結(jié)束后。對于非JTA 數(shù)據(jù)源,通常是在每個(gè)事務(wù)結(jié)束后釋放JDBC 連接是有意義的。將該值設(shè)為auto 時(shí),JTA 和CMT 事務(wù)策略時(shí),是選擇after_statement方式。JDBC 事務(wù)策略時(shí),是選擇after_transaction。取值,auto(default),on_close,after_statment,after_transaction。 注意:這個(gè)設(shè)置只影響通過SessionFactory.openSession 打開的session 。對于通過SessionFactory.getCurrentSession 獲取的session ,

CurrentSessionContext 實(shí)現(xiàn)類的配置是用來控制這些session 的連接釋放模式。

(12)hibernate.connection. 傳遞這些屬性到DriverManager.getConnection 中。

(13)hibernate.jndi. 傳遞這些屬性到JNDI InitialContextFactory。

3.Hibernate Cache 屬性

(1)hibernate.cache.provider_class 定制的CacheProvider 的類名。

(2)hibernate.cache.use_minimal_puts 花費(fèi)更多的讀操作,來優(yōu)化二級緩存的最少寫操作。這個(gè)操作對于集群緩存是非常有用的。在Hibernate3中,對于集群緩存是默認(rèn)開啟該功能的。取值,true|false。

(3)hibernate.cache.use_query_cache 開啟查詢緩存,個(gè)別查詢肯定應(yīng)該開啟查詢緩存。取值,true|false。

,

(4)hibernate.cache.use_second_level_cache 也許過去習(xí)慣于完全屏蔽掉二級緩存,默認(rèn)是開啟,對于指定CacheProvider 實(shí)現(xiàn)類的情況。取值,true|false。

(5)hibernate.cache.query_cache_factory 實(shí)現(xiàn)QueryCache 接口的類名,默認(rèn)是內(nèi)置的StandardQueryCache 。

(6)hibernate.cache.region_prefix 對于使用二級緩存區(qū)域名的前綴。

(7)hibernate.cache.use_structured_entries 強(qiáng)迫Hibernate 在存儲(chǔ)數(shù)據(jù)到二級緩存時(shí),使用更人性化的格式。取值,true|false。

4.Hibernate 事務(wù)屬性

(1)hibernate.transaction.transaction_class 使用Hibernate 事務(wù)APIs 的TransactionFactory 的類名。默認(rèn)是JDBCTransactionFactory 。

(2)jta.UserTransaction JTATransactionFactory使用JNDI 名字從應(yīng)用服務(wù)器中獲取JTA UserTransaction。取值,jndi/ut。

(3)hibernate.transaction.manager_lookup_class 是一個(gè)

TransactionManagerLookup 實(shí)現(xiàn)類的類名。當(dāng)JVM 級別的緩存開啟時(shí)或在JTA 環(huán)境中使用hilo generator時(shí),要求指定該值。

(4)hibernate.transaction.flush_before_completion 如果設(shè)為true ,

session 將在事務(wù)完成階段之前,自動(dòng)將緩存區(qū)的值推入到數(shù)據(jù)庫中。內(nèi)置和自動(dòng)session 上下文管理是被優(yōu)先選用的。取值,true|false。

(5)hibernate.transaction.auto_close_session 如果設(shè)為true ,session 將在事務(wù)完成之后,自動(dòng)的關(guān)閉session 。內(nèi)置和自動(dòng)session 上下文管理是被優(yōu)先選用的。取值,true|false。

5.Miscellaneous properties 各種混合的屬性

(1)hibernate.current_session_context_class 提供一個(gè)對于當(dāng)前session 生命周期的策略。取值,jta 、thread 、managed 、定制類名。

(2)hibernate.query.factory_class 選擇HSQL 的解析實(shí)現(xiàn)類。取值,org.hibernate.hsql.ast.ASTQueryTranslatorFactory 和

org.hibernate.hsql.classic.ClassicQueryTranslatorFactory 。

(3)hibernate.query.subsitutions Hibernate 中標(biāo)記符到SQL 中標(biāo)記符的映射。舉例說,可以是函數(shù)名或普通字符串名。取值,如hsqLiteral=SQL_LITERAL,hqlFunction=SQLFUN。

(4)hibernate.hbm2ddl.auto 當(dāng)SessionFactory 被創(chuàng)建時(shí),自動(dòng)的驗(yàn)證或輸出模式DDL (也就建表語句)到數(shù)據(jù)庫中。也就是說,自動(dòng)的驗(yàn)證數(shù)據(jù)庫表結(jié)構(gòu)

,

或先刪除再重新建立,或在原表結(jié)構(gòu)上更新數(shù)據(jù)表結(jié)構(gòu)。當(dāng)將值置為

create-drop 時(shí),在SessionFactory 被清除時(shí),將刪除數(shù)據(jù)庫中表結(jié)構(gòu)。取值,validate 、create 、update 、create-drop 。

(5)hibernate.cglib.use_reflection_optimizer 用CGLIB 代替運(yùn)行期的

reflection (系統(tǒng)級屬性)。在有故障時(shí),反射是非常有用的,注意Hibernate 總是需要CGLIB ,甚至在你關(guān)閉優(yōu)化后。你不可以設(shè)置這個(gè)屬性在

hibernate.cfg.xml 文件中。

標(biāo)簽: