首頁  >  文章  >  Java  >  java mybatis中的setting配置實例詳解

java mybatis中的setting配置實例詳解

怪我咯
怪我咯原創
2017-07-02 10:44:272915瀏覽

這篇文章主要為大家介紹了關於mybatis中setting配置的相關資料,文中透過範例程式碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。

在mybaits中,setting的的設定參數如下(如果不在設定檔中設定將使用預設值):


## aggressiveLazyLoading當啟用時,對任意延遲屬性的呼叫會使具有延遲載入屬性的物件完整載入;反之,每個屬性將會按需載入。 true | falsetruemultipleResultSetsEnabled是否允許單一語句傳回多結果集(需要相容驅動)。 true | falsetrueuseColumnLabel使用列標籤取代列名。不同的驅動在這方面會有不同的表現, 具體可參考相關驅動文件或透過測試這兩種不同的模式來觀察所用驅動的結果。 true | falsetrueuseGeneratedKeys允許 JDBC 支援自動產生主鍵,需要驅動相容。 如果設定為 true 則這個設定強制使用自動產生主鍵,儘管有些驅動無法相容但仍可正常運作(例如 Derby)。 true | falseFalse#autoMappingBehaviorNONE, PARTIAL, FULLPARTIAL#defaultExecutorTypeSIMPLE REUSE BATCHSIMPLE#defaultStatementTimeout設定逾時時間,它決定驅動等待資料庫回應的秒數。 Any positive Not Set (null)defaultFetchSizeSets the driver a hint as to control fetching size for results. This parameter value can be override by a query setting.Any positive integer##Not Set (null)##Not Set (null)##safeRowBoundsEnabled允許在巢狀語句中使用分頁(RowBounds)。 true | falseFalse#mapUnderscoreToCamelCase是否開啟自動駝峰命名規則(camel case)映射,即從經典資料庫列名A_COLUMN 到經典Java 屬性名aColumn 的類似對映。 true | falseFalselocalCacheScopeMyBatis 利用本機快取機制(Local Cache)防止循環引用(circular references )和加速重複嵌套查詢。 預設值為 ,這種情況下會快取一個會話中執行的所有查詢。 若設定值為 STATEMENT,本機會話僅用在語句執行上,對相同 SqlSession 的不同呼叫將不會共享資料。 SESSION | STATEMENTSESSIONjdbcTypeForNull當沒有為參數提供特定的JDBC 類型時,為空值指定JDBC 類型。 某些驅動程式需要指定列的 JDBC 類型,多數情況直接用一般類型即可,例如 NULL、VARCHAR 或 OTHER。 JdbcType enumeration. Most common are: NULL, VARCHAR and OTHEROTHERlazyLoadTriggerMethods#指定哪個物件的方法觸發一次延遲載入。 A method name list separated by commasequals,clone,hashCode,toStringdefaultScriptingLanguage指定動態SQL 產生的預設語言。 A type alias or fully qualified class name.org.apache.ibatis.scripting.xmltags.XMLDynamicLanguageDriverproxyFactory##Not延遲載入能力的物件所用到的代理工具。 CGLIB | JAVASSIST
設定參數 描述 有效值 預設值
cacheEnabled 該配置影響的所有映射器中配置的快取的全域開關 true | false true
lazyLoadingEnabled 延遲載入的全域開關。當開啟時,所有關聯物件都會延遲載入。 特定關聯關係中可透過設定fetchType屬性來覆寫該項目的開關狀態 #true | false false
指定 MyBatis 應如何自動對應列到欄位或屬性。 NONE 表示取消自動對應;PARTIAL 只會自動對應沒有定義巢狀結果集對應的結果集。 FULL 會自動對應任意複雜的結果集(無論是否為巢狀)。
設定預設的執行器。 SIMPLE 就是普通的執行器;REUSE 執行器會重複使用預處理語句(prepared statements); BATCH 執行器會重複使用語句並執行批次更新。
integer
return
Any positive integer
SESSION
#########callSettersOnNulls##### #指定當結果集中值為null 的時候是否呼叫映射物件的setter(map 物件時為put)方法,這對於有Map.keySet() 依賴或null 值初始化的時候是有用的。注意基本型別(int、boolean等)是不能設定成 null 的。 ######true | false######false#############logPrefix######指定 MyBatis 增加到日誌名稱的前綴。 ######Any String######Not set#############logImpl#######指定 MyBatis 所用日誌的具體實現,未指定時將自動查找。 SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING #Not set
proxyFactory ##Not 建立具有指定
##JAVASSIST (MyBatis 3.3 or above)


在實際的應用中要依照自己的需求進行設定:

例如我在專案中的設定一般如下:

<settings>

<setting name="jdbcTypeForNull" value="NULL" />

<setting name="logImpl" value="SLF4J" />

<setting name="mapUnderscoreToCamelCase" value="true" />

<setting name="defaultExecutorType" value="BATCH" />

</settings>
<br>#注意點:

有點的配置的log4j的日誌印不出sql語句時,不僅要檢查log4j的配置文件,還有一點特別重要就是###bfde2c52b6eb77c9a88e95c5daeff4f2###的配置,應該指明配置(如果用的是LOG4J),例如:###
<configuration> 
 <settings> 
 <setting name="logImpl" value="LOG4J"/> 
 </settings> 
</configuration>

以上是java mybatis中的setting配置實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn