卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

Hibernate配置項

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)(自動創(chuàng)建|更新|驗證數(shù)據(jù)庫表結(jié)構(gòu))

#none: 不做任何操作

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

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

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

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

hibernate.hbm2ddl.auto=none

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

#設(shè)定JDBC 的Statement 讀取數(shù)據(jù)的時候每次從數(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ù)庫進行批量刪除,批量更新和批量插入的時候的批次大小。

#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)試。默認值為false 。取值為true|false。

hibernate.use_sql_comments=false

(附錄) Hibernate 配置項:

1.Hibernate 配置項

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

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

true|false。

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

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

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

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

org.hibernate.SessionFactory 實例后后會自動的將這個綁定到JNDI 中的名字上。取值jndi/sf。

,

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

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

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

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

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

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

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

(13)hibernate.use_sql_comments 如果設(shè)置為true ,Hiberante 將為SQL 產(chǎn)生注釋,這樣更利于調(diào)試。默認值為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è)置這個屬性為true ,JDBC 將返回executeBatch 執(zhí)行后正確的行數(shù)。打開這個參數(shù),通常是安全的。Hibernate 將自動的譯碼這些數(shù)據(jù)使用批量DML 。默認為false 。取值true|false。

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

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

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

(6)hibernate.jdbc.use_streams_for_binary 當讀或?qū)懚M制數(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ū)動程序有問題,請設(shè)置為false 。默認情況下,設(shè)法連接MetaData 來決定。取值,true|false。

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

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

Hibernate 提供連接。

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

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

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

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

CurrentSessionContext 實現(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 花費更多的讀操作,來優(yōu)化二級緩存的最少寫操作。這個操作對于集群緩存是非常有用的。在Hibernate3中,對于集群緩存是默認開啟該功能的。取值,true|false。

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

,

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

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

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

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

4.Hibernate 事務(wù)屬性

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

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

(3)hibernate.transaction.manager_lookup_class 是一個

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

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

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

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

5.Miscellaneous properties 各種混合的屬性

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

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

org.hibernate.hsql.classic.ClassicQueryTranslatorFactory 。

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

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

,

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

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

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

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

hibernate.cfg.xml 文件中。

標簽: