03.Mybatisの最適化

さらなる最適化のためのコードの動的プロキシ方法:

1.データベースにconf.xmlファイルの構成情報はdb.propertiesの形で引き出さ

ドライバ=はcom.mysql.jdbc.Driverの
URL = JDBCます。mysql:// localhostを:3306 /人serverTimezone = UTCの?
ユーザ名=ルート
パスワード=ルート
< 設定> 
   < プロパティリソース=「db.properties」/>プロパティがでてくるファイルをロードするために引き出さ// < 環境デフォルト=「開発」> < 環境前述のID =「開発」> < トランザクションマネージャータイプの=「JDBC」/> < データソースのタイプ= "POOLED" > < プロパティ= "ドライバ" = "$ {ドライバ}" /> //参照方法同様の表現EL <プロパティ= "URL" = "$ {URL}" />  
  
    
      
      
        
        
        < プロパティ= "ユーザ名" = "$ {ユーザー名}" /> 
        < プロパティ= "パスワード" = "$ {パスワード}" /> 
      </ のdataSource > 
    </ 環境> 
  </ 環境> 
  < マッパー> 
    < マッパーリソース= "COM / offcn /マッパ/ personMapper.xml" /> 
  </ マッパー> 
</ 設定>

2.グローバルパラメータを設定する:(エントリは、一般的にグローバルパラメータを設定しないと)

< 設定> 
    < プロパティのリソースは= "db.properties"  /> 
    <! - 设置全局参数
    <設定> 
        <設定名= "cacheEnabled"値= "偽" /> 
        <設定名=値= "false"を"lazyLoadingEnabledを" /> 
    </設定>

すべてのグローバルパラメータ:

パラメータの設定 説明 有効な値 デフォルト値
cacheEnabled キャッシュグローバルスイッチ構成の設定によって影響を受けるすべてのマッパー。 真|
lazyLoadingEnabled 遅延グローバルスイッチロード。オンにすると、すべての関連付けは、ロードを遅延されます。特定協会によって提供されていてもよいfetchType性のスイッチング状態を覆います。 真|
aggressiveLazyLoading オンにすると、任意のメソッド呼び出しは、すべてのオブジェクトのプロパティをロードします。そうでない場合は、各プロパティには、(参照してください。オンデマンドでロードされますlazyLoadTriggerMethodsを)。 真| 偽(≤3.4.1で真)
multipleResultSetsEnabled 単一の文が複数の結果セットを返すことができるようにするかどうか(互換ドライブが必要です)。 真|
useColumnLabel 代わりに、列名の列ラベルを使用してください。異なるドライバはこの点で異なる性能、特定の参照資料関連するドライブまたは試験によって観察するために使用される駆動される2つの異なるモードを有します。 真|
useGeneratedKeys JDBCのサポートは、主キーの自動生成を可能に互換性を駆動する必要があります。trueに設定すると、自動的に主キーを生成するために使用される設定力は、いくつかのドライバは互換性がないかもしれませんが、それでも(例えばダービーとして)働いています。 真|
autoMappingBehavior MyBatisのは、自動的に列フィールドまたはプロパティをマップする方法を指定します。NONEは、自動マッピングを取り消す意味し、自動的にネストされた結果を定義PARTIAL結果セットマッピングをマッピングします。結果の完全自動マッピングされた任意の複雑なセット(ネストされたか否か)。 NONEない、PARTIAL、FULL PARTIAL
autoMappingUnknownColumnBehavior 自動的に指定されたターゲットの発見不明の列(または未知の属性タイプ)の挙動をマッピングします。
  • NONEません:任意の反応なし
  • 警告:出力アラート・ログ(「org.apache.ibatis.session.AutoMappingUnknownColumnBehavior」ログレベルをするように設定する必要があり  WARN
  • 失敗:マッピングが失敗した(スロー  SqlSessionExceptionを
NONE、WARNING、失敗 無し
defaultExecutorType アクチュエータのデフォルトの設定。SIMPLEは、通常のアクチュエータであり、REUSEエグゼキュータは、プリペアドステートメント(準備文)を再利用します。BATCHエグゼキュータは、文を再利用し、バッチ更新を行います。 SIMPLE REUSEのBATCH SIMPLE
defaultStatementTimeout タイムアウトを設定し、それがデータベースの応答を待つ秒数を駆動することを決めました。 任意の正の整数 (null)を設定していません
defaultFetchSize 駆動するために設定され、結果は数(のfetchSize)が、プロンプト値を提供取得します。このパラメータは、クエリの設定で上書きすることができます。 任意の正の整数 (null)を設定していません
safeRowBoundsEnabled これは、ネストされたステートメントのタブ(RowBounds)を使用することができます。許可がfalseに設定されている場合。 真|
safeResultHandlerEnabled タブは、ネストされたステートメントで(ResultHandler)を使用することができます。許可がfalseに設定されている場合。 真|
mapUnderscoreToCamelCase 列名は、古典的なデータベースから、従来のJavaプロパティ名aColumnに似A_COLUMNマッピングし、自動的に命名規則ハンプ(キャメルケース)マッピングを開くかどうか。 真|
localCacheScope 循環参照(循環参照)を防止し、繰り返しネストされたクエリを加速するためにローカルキャッシュメカニズム(ローカルキャッシュ)のMyBatisの使用。デフォルトでは、この場合は、セッションで実行されたすべてのクエリをキャッシュします、SESSIONです。設定はSTATEMENT、唯一のステートメントのローカルセッションが実行された場合には、同じSQLSESSIONに異なる呼び出しは、データを共有することはありません。 SESSION | ステートメント セッション
jdbcTypeForNull 具体的なJDBCの型パラメータを指定しない場合はJDBCタイプがnullです。一部のドライバは、NULL、VARCHAR、またはその他のような一般的タイプに直接ほとんどの場合、JDBC型の列を指定する必要があります。 JdbcType列挙。最も一般的なものは以下のとおりです。NULL、VARCHARおよびその他
lazyLoadTriggerMethods 負荷の遅延をトリガするオブジェクトのメソッドを指定します。 カンマで区切られたメソッド名のリスト イコール、クローン、のhashCode、のtoString
defaultScriptingLanguage 指定动态 SQL 生成的默认语言。 A type alias or fully qualified class name. org.apache.ibatis.scripting.xmltags.XMLLanguageDriver
defaultEnumTypeHandler Specifies the TypeHandler used by default for Enum. (Since: 3.4.5) A type alias or fully qualified class name. org.apache.ibatis.type.EnumTypeHandler
callSettersOnNulls 指定当结果集中值为 null 的时候是否调用映射对象的 setter(map 对象时为 put)方法,这对于有 Map.keySet() 依赖或 null 值初始化的时候是有用的。注意基本类型(int、boolean等)是不能设置成 null 的。 true | false false
returnInstanceForEmptyRow 当返回行的所有列都是空时,MyBatis默认返回null。 当开启这个设置时,MyBatis会返回一个空实例。 请注意,它也适用于嵌套的结果集 (i.e. collectioin and association)。(从3.4.2开始) 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 指定 Mybatis 创建具有延迟加载能力的对象所用到的代理工具。 CGLIB | JAVASSIST JAVASSIST (MyBatis 3.3 or above)
vfsImpl 指定VFS的实现 自定义VFS的实现的类全限定名,以逗号分隔。 Not set
useActualParamName 允许使用方法签名中的名称作为语句参数名称。 为了使用该特性,你的工程必须采用Java 8编译,并且加上-parameters选项。(从3.4.1开始) true | false true
configurationFactory 指定一个提供Configuration实例的类. 这个被返回的Configuration实例是用来加载被反序列化对象的懒加载属性值. 这个类必须包含一个签名方法static Configuration getConfiguration(). (从 3.2.3 版本开始) 类型别名或者全类名. Not set

おすすめ

転載: www.cnblogs.com/man-tou/p/11335048.html