Mybatisプロファイルの属性構成要素解析
10052 ワード
Mybatisプロファイルの属性構成要素解析
1.概要
設定要素はmybatisの中で最も複雑であり、最も重要な構成の一つでもある.mybatisの運行時の行動を変えて、settingsの要素を配置しなくても、mybatisは正常に運行できますが、settingsの配置内容はmybatisを使うには百利です.
2.settingsの設定属性
settings
これはMyBatisの中で極めて重要な調整設定であり、それらはMyBatisの運転時の挙動を変えます.下の表では、設定中の各項目の意図、デフォルト値などを説明します.
パラメータを設定
説明
有効値
標準値
cacheEnbled
全体的に設定ファイルのすべてのマッパーが設定したキャッシュをオンまたはオフにします.
true false
true
lazy LoadingEnbaled
ロードのグローバルスイッチを遅延します.オープン時には、すべての関連オブジェクトのロードが遅延されます.特定の関連関係では、fetType属性を設定することによって、当該項目のスイッチング状態をカバーすることができます.
true false
false
aggressvieLazy Loading
起動時には、どの方法の呼び出しも、オブジェクトのすべての属性をロードします.属性ごとに必要に応じてロードされます.
true false
false(true in≦3.4.1)
multiplleResult Sets Enbaled
単一の語句が複数の結果セットに戻ることを許可するかどうか(互換駆動が必要).
true false
true
use ColumnLabel
列名の代わりに列のラベルを使います.この点では駆動の違いがあります.具体的には関連する駆動ドキュメントを参照したり、これらの2つの異なるモードをテストしたりして、使用した駆動の結果を観察します.
true false
true
useGenerate edKeys
JDBCは自動的にメインキーを生成することができます.ドライバ互換性が必要です.trueに設定すると、この設定は自動的にメインキーを生成するために強制的に使用されます.いくつかのドライバは互換できませんが、Derbyなどは正常に動作します.
true false
False
aut MappingBehavior
MyBatisをフィールドまたは属性に自動的にマッピングする方法を指定します.NONEは自動マッピングを解除します.PATIALはネストされた結果セットのマッピングが定義されていない結果セットだけを自動的にマッピングします.FLLは任意の複雑な結果セットを自動的にマッピングします.
NONE、PARTAL、FULL
PARTAL
aut MappingUniknown Column Behavior
ターゲット不明の列(または未知の属性タイプ)を自動的にマッピングする挙動を指定します. NONE:何の反応もしない WARNING:出力アラームログ(‘org.apphe.ibatis.session.AutoMappingUniknown Column Behavior’のログレベルはWARNに設定しなければならない) FAILING:マッピング失敗(Sql Session Exceptionをスロー) NONE、WARNING、FAILING
NONE
default ExectorType
デフォルトのアクチュエータを設定します.SIMPPLEは普通のアクチュエータです.REUSアクチュエータは前処理文を再利用します.BATCHアクチュエータは文を再利用して、一括更新を行います.
SIMPLE REUSE BATCH
SIM PLE
default Statement Timeout
タイムアウト時間を設定します.データベース応答待ちの秒数を決定します.
任意の正の整数
Notセット(null)
defaultFetch Size
ドライバの結果セット取得数にヒント値を設定します.このパラメータはクエリー設定のみで上書きできます.
任意の正の整数
Notセット(null)
safeRowBounds Enbaled
ネストされた文の中で改ページ(RowBounds)の使用を許可します.使用が許可されている場合はfalseに設定します.
true false
False
safeResult Handler Enbaled
ネストされた文の中で改ページを使用することができます.許可されている場合はfalseに設定します.
true false
True
mapUnderscore ToCamelCase
自動ラクダピーク命名規則(camel case)マッピングがオンされているかどうか、すなわち古典データベース列名AuCOLUMNから古典Java属性名aColumnまでの類似マッピングです.
true false
False
locacacacheScope
MyBatisは、ローカルキャッシュ機構(Local Cache)を利用して、ループ参照(circuar references)と重複したクエリを防止します.デフォルト値はSESSIONです.この場合、一つのセッションで実行されるすべてのクエリがキャッシュされます.設定値がSTATEMENTであれば、ローカルセッションは文のみで実行され、同じSql Sessionの違いに対してデータを共有しません.
SESSION STATENT
SESSION
jdbcType ForNull
パラメータに特定のJDBCタイプを提供していない場合は、空の値にJDBCタイプを指定します.特定のドライバは列のJDBCタイプを指定する必要があります.多くの場合、直接にNULL、VRCHARR、OTHERなどの一般タイプを使用すればいいです.
JdbcTypeの定数は、ほとんどがNULL、VRCHARR and OTHERです.
OTHER
lazy LoadTrigger Methods
どのオブジェクトの方法を指定して、一回の遅延負荷をトリガしますか?
コンマで区切る方法のリスト.
equals、clone、hashCode、toString
default ScripptingLanguage
動的SQLによって生成されるデフォルトの言語を指定します.
タイプ別名またはクラス名を完全に定義します.
org.apache.ibatis.scripting.xmltags.XMLLangage Driver
default Enum Type Handler
Enumで使用するデフォルトType Handlerを指定します.(3.4.5から)
タイプ別名またはクラス名を完全に定義します.
org.apache.ibatis.type.EnumType Handler
calSetters ONulls
結果セット値がnullの場合、マッピング対象のsetter(mapオブジェクトの場合はput)を呼び出すかどうかを指定する方法は、Map.keySet()依存またはnull値の初期化がある場合に有用です.基本タイプ(int、bollanなど)はnullに設定できません.
true false
false
return Instance ForEmptyRow
行に戻るすべての列が空の場合、MyBatisはデフォルトでnullに戻ります.この設定をオンにすると、MyBatisは空の例を返します.入れ子の結果集(i.e.collection and assion)にも適用されます.(3.4.2から)
true false
false
logPrfix
MyBatisをログ名のプレフィックスに追加するよう指定します.
すべての文字列
Not set
logImpl
MyBatis用ログの具体的な実装を指定します.指定されていない場合は自動的に検索されます.
SLF 4 J_LOG 4 J_LOG 4 J 2𞓜JDKuLOGGING 124; COMMONS_LOGGING_stdOUT_LOGGING
Not set
proxyFactory
Mybatisが遅延負荷能力を持つオブジェクトを作成するために使用されるプロキシツールを指定します.
CGLOIB|JAVAISSIST
JAVANSSIST(MyBatis 3.3 or above)
vfsImpl
指定VFSの実現
VFSの実装クラスのフルネームをカスタマイズして、カンマで区切ります.
Not set
useActual Parame Name
メソッド署名の名前をステートメントパラメータ名として使用することができます.この特性を使用するためには、プロジェクトはJava 8でコンパイルし、-parametersオプションを加えなければなりません.(3.4.1から)
true false
true
configrationFactory
Configrationのインスタンスを提供するクラスを指定します.この返されたConfigrationの例は、アンチプログレッシブオブジェクトの怠惰なロード属性値をロードするために使用されます.このクラスは、署名方法static Cofigration getConfigration().(3.2.3バージョンから)を含む必要があります.
タイプ別名または全類名.
Not set
一つの構成の完全なsettings要素の例は以下の通りである.
1.概要
設定要素はmybatisの中で最も複雑であり、最も重要な構成の一つでもある.mybatisの運行時の行動を変えて、settingsの要素を配置しなくても、mybatisは正常に運行できますが、settingsの配置内容はmybatisを使うには百利です.
2.settingsの設定属性
settings
これはMyBatisの中で極めて重要な調整設定であり、それらはMyBatisの運転時の挙動を変えます.下の表では、設定中の各項目の意図、デフォルト値などを説明します.
パラメータを設定
説明
有効値
標準値
cacheEnbled
全体的に設定ファイルのすべてのマッパーが設定したキャッシュをオンまたはオフにします.
true false
true
lazy LoadingEnbaled
ロードのグローバルスイッチを遅延します.オープン時には、すべての関連オブジェクトのロードが遅延されます.特定の関連関係では、fetType属性を設定することによって、当該項目のスイッチング状態をカバーすることができます.
true false
false
aggressvieLazy Loading
起動時には、どの方法の呼び出しも、オブジェクトのすべての属性をロードします.属性ごとに必要に応じてロードされます.
true false
false(true in≦3.4.1)
multiplleResult Sets Enbaled
単一の語句が複数の結果セットに戻ることを許可するかどうか(互換駆動が必要).
true false
true
use ColumnLabel
列名の代わりに列のラベルを使います.この点では駆動の違いがあります.具体的には関連する駆動ドキュメントを参照したり、これらの2つの異なるモードをテストしたりして、使用した駆動の結果を観察します.
true false
true
useGenerate edKeys
JDBCは自動的にメインキーを生成することができます.ドライバ互換性が必要です.trueに設定すると、この設定は自動的にメインキーを生成するために強制的に使用されます.いくつかのドライバは互換できませんが、Derbyなどは正常に動作します.
true false
False
aut MappingBehavior
MyBatisをフィールドまたは属性に自動的にマッピングする方法を指定します.NONEは自動マッピングを解除します.PATIALはネストされた結果セットのマッピングが定義されていない結果セットだけを自動的にマッピングします.FLLは任意の複雑な結果セットを自動的にマッピングします.
NONE、PARTAL、FULL
PARTAL
aut MappingUniknown Column Behavior
ターゲット不明の列(または未知の属性タイプ)を自動的にマッピングする挙動を指定します.
NONE
default ExectorType
デフォルトのアクチュエータを設定します.SIMPPLEは普通のアクチュエータです.REUSアクチュエータは前処理文を再利用します.BATCHアクチュエータは文を再利用して、一括更新を行います.
SIMPLE REUSE BATCH
SIM PLE
default Statement Timeout
タイムアウト時間を設定します.データベース応答待ちの秒数を決定します.
任意の正の整数
Notセット(null)
defaultFetch Size
ドライバの結果セット取得数にヒント値を設定します.このパラメータはクエリー設定のみで上書きできます.
任意の正の整数
Notセット(null)
safeRowBounds Enbaled
ネストされた文の中で改ページ(RowBounds)の使用を許可します.使用が許可されている場合はfalseに設定します.
true false
False
safeResult Handler Enbaled
ネストされた文の中で改ページを使用することができます.許可されている場合はfalseに設定します.
true false
True
mapUnderscore ToCamelCase
自動ラクダピーク命名規則(camel case)マッピングがオンされているかどうか、すなわち古典データベース列名AuCOLUMNから古典Java属性名aColumnまでの類似マッピングです.
true false
False
locacacacheScope
MyBatisは、ローカルキャッシュ機構(Local Cache)を利用して、ループ参照(circuar references)と重複したクエリを防止します.デフォルト値はSESSIONです.この場合、一つのセッションで実行されるすべてのクエリがキャッシュされます.設定値がSTATEMENTであれば、ローカルセッションは文のみで実行され、同じSql Sessionの違いに対してデータを共有しません.
SESSION STATENT
SESSION
jdbcType ForNull
パラメータに特定のJDBCタイプを提供していない場合は、空の値にJDBCタイプを指定します.特定のドライバは列のJDBCタイプを指定する必要があります.多くの場合、直接にNULL、VRCHARR、OTHERなどの一般タイプを使用すればいいです.
JdbcTypeの定数は、ほとんどがNULL、VRCHARR and OTHERです.
OTHER
lazy LoadTrigger Methods
どのオブジェクトの方法を指定して、一回の遅延負荷をトリガしますか?
コンマで区切る方法のリスト.
equals、clone、hashCode、toString
default ScripptingLanguage
動的SQLによって生成されるデフォルトの言語を指定します.
タイプ別名またはクラス名を完全に定義します.
org.apache.ibatis.scripting.xmltags.XMLLangage Driver
default Enum Type Handler
Enumで使用するデフォルトType Handlerを指定します.(3.4.5から)
タイプ別名またはクラス名を完全に定義します.
org.apache.ibatis.type.EnumType Handler
calSetters ONulls
結果セット値がnullの場合、マッピング対象のsetter(mapオブジェクトの場合はput)を呼び出すかどうかを指定する方法は、Map.keySet()依存またはnull値の初期化がある場合に有用です.基本タイプ(int、bollanなど)はnullに設定できません.
true false
false
return Instance ForEmptyRow
行に戻るすべての列が空の場合、MyBatisはデフォルトでnullに戻ります.この設定をオンにすると、MyBatisは空の例を返します.入れ子の結果集(i.e.collection and assion)にも適用されます.(3.4.2から)
true false
false
logPrfix
MyBatisをログ名のプレフィックスに追加するよう指定します.
すべての文字列
Not set
logImpl
MyBatis用ログの具体的な実装を指定します.指定されていない場合は自動的に検索されます.
SLF 4 J_LOG 4 J_LOG 4 J 2𞓜JDKuLOGGING 124; COMMONS_LOGGING_stdOUT_LOGGING
Not set
proxyFactory
Mybatisが遅延負荷能力を持つオブジェクトを作成するために使用されるプロキシツールを指定します.
CGLOIB|JAVAISSIST
JAVANSSIST(MyBatis 3.3 or above)
vfsImpl
指定VFSの実現
VFSの実装クラスのフルネームをカスタマイズして、カンマで区切ります.
Not set
useActual Parame Name
メソッド署名の名前をステートメントパラメータ名として使用することができます.この特性を使用するためには、プロジェクトはJava 8でコンパイルし、-parametersオプションを加えなければなりません.(3.4.1から)
true false
true
configrationFactory
Configrationのインスタンスを提供するクラスを指定します.この返されたConfigrationの例は、アンチプログレッシブオブジェクトの怠惰なロード属性値をロードするために使用されます.このクラスは、署名方法static Cofigration getConfigration().(3.2.3バージョンから)を含む必要があります.
タイプ別名または全類名.
Not set
一つの構成の完全なsettings要素の例は以下の通りである.
name="cacheEnabled" value="true"/>
name="lazyLoadingEnabled" value="true"/>
name="multipleResultSetsEnabled" value="true"/>
name="useColumnLabel" value="true"/>
name="useGeneratedKeys" value="false"/>
name="autoMappingBehavior" value="PARTIAL"/>
name="autoMappingUnknownColumnBehavior" value="WARNING"/>
name="defaultExecutorType" value="SIMPLE"/>
name="defaultStatementTimeout" value="25"/>
name="defaultFetchSize" value="100"/>
name="safeRowBoundsEnabled" value="false"/>
name="mapUnderscoreToCamelCase" value="false"/>
name="localCacheScope" value="SESSION"/>
name="jdbcTypeForNull" value="OTHER"/>
name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
3.