自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

強人Hibernate文檔筆記(下)

開發(fā) 后端
Hibernate文檔筆記共分為三個部分,此處是第三部分,重點講述了可選配置項,它包括Hibernate配置項、Hibernate JDBC和連接的屬性、Hibernate Cache 屬性、Hibernate事務(wù)屬性和Miscellaneous properties 各種混合的屬性。

Hibernate文檔筆記共分為三個部分,此處是第三部分,重點講述了可選配置項,它包括Hibernate配置項、Hibernate JDBC和連接的屬性、Hibernate Cache 屬性、Hibernate事務(wù)屬性和Miscellaneous properties 各種混合的屬性。

九、可選配置項

下面介紹的Hibernate屬性,有一些是系統(tǒng)級別的。系統(tǒng)級別的屬性只能通過-Dproperty=value來設(shè)置或在hibernate.properties文件中設(shè)置,不能使用上面的方式設(shè)置。

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 也許過去習(xí)慣于完全屏蔽掉二級緩存,默認是開啟,對于指定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文件中。

 

【編輯推薦】

  1. 強人Hibernate文檔筆記(上)
  2. 初學(xué)者適用的Hibernate學(xué)習(xí)方法
  3. 強人Hibernate文檔筆記(中)
  4. Hibernate一對多關(guān)系的處理
  5. Hibernate的性能優(yōu)化
責任編輯:仲衡 來源: CSDN博客
相關(guān)推薦

2009-06-16 15:32:24

Hibernate文檔

2009-06-16 15:42:44

Hibernate文檔

2009-09-29 17:22:30

Hibernate S

2009-06-18 11:25:26

Hibernate L

2009-09-29 16:21:31

Hibernate單元

2009-09-27 14:56:22

Hibernate H

2009-06-16 13:09:15

Hibernate實戰(zhàn)Hibernate

2009-06-18 14:20:45

hibernate實戰(zhàn)

2009-02-11 09:37:32

Hibernate分頁技術(shù)JSP

2009-09-22 16:49:42

Hibernate分頁

2009-10-26 10:31:20

linux庫

2011-08-23 11:13:56

Lua

2009-06-15 13:46:00

netbeans配置hibernate

2009-06-18 12:59:39

Criteria Qu深入淺出Hiberna

2020-11-27 09:00:00

人工智能

2009-02-27 11:01:46

LinuxNoStaples掃描文檔

2011-08-09 13:34:53

SubversionXCodeMac

2012-02-08 14:24:35

HibernateJava

2023-03-08 08:19:55

文檔OBOBProxy

2024-09-04 07:54:48

點贊
收藏

51CTO技術(shù)棧公眾號