プロパティ
これらは、外部化された代替プロパティであり、典型的なJavaプロパティ構成ファイルで構成するか、プロパティ要素の子要素を通過することもできます。例えば:
<プロパティリソース= "org/mybatis/example/config.properties"> <プロパティ名= "username" value = "dev_user"/> <property name = "property name =" password "value =" f2fa3!33tyyg "/> </properties>
その中のプロパティは、構成ファイル全体で使用でき、交換可能なプロパティは動的構成を実装するために使用できます。例えば:
<DataSource Type = "Pooled"> <プロパティ名= "driver" value = "$ {driver}"/> <プロパティ名= "url" value = "$ {url}"/> <プロパティname = "username" value = "$ {username}"/> <プロパティ名= "propertion" value = "$ {{password}
この例では、ユーザー名とパスワードは、プロパティ要素に設定された値に置き換えられます。ドライバーとURLのプロパティは、config.propertiesファイルに含まれる値に置き換えられます。
設定
1.cacheenabled
この構成により、グローバルマッパーがキャッシュを有効または無効にすることができます。
有効な値:true、false
デフォルト値:true
2.LazyLoadingEnabled
怠zyなロードをグローバルに有効または無効にします。無効にすると、関連するすべてのオブジェクトが即座にロードされます。
有効な値:true、false
デフォルト値:true
3.AggressivelazyLoading
有効にすると、遅延荷重プロパティを備えたオブジェクトは、呼び出されたときに任意のプロパティを完全にロードします。さもないと、
各属性は必要に応じてロードされます。
有効な値:true、false
デフォルト値:true
4.mult ipleresultSetsEnabled
複数の結果セットを別のステートメントから返品することを許可するか、許可しないでください(適切なドライバーが必要です)
有効な値:true、false
デフォルト値:true
5.USECOLUMNLABEL
列名の代わりに列ラベルを使用します。異なるドライバーは、さまざまなパフォーマンスに便利です。ドライバーのドキュメントを参照するか、完全な方法をテストして、使用するドライバーを決定します。
有効な値:true、false
デフォルト値:true
6.USEGENERATEDKEYS
JDBCが生成されたキーをサポートできるようにします。適切なドライブが必要です。 Trueに設定した場合、この設定は生成されたキーを使用するように強制し、一部のドライバーは互換性があることを拒否しますが、それらはまだ有効です(ダービーなど)
有効な値:true、false
デフォルト値:false
7.自動化ベハビオール
MyBatisが列をフィールド/属性に自動的にマップする方法を指定します。 Partialは自動的に単純なマッピングのみであり、ネストされた結果はありません。
フルは複雑な結果(ネックまたはその他)を自動的にマッピングします
有効な値:なし、部分的、フル
デフォルト値:部分的
8.DefaultExeCutortype
デフォルトのエグゼキューターを構成します。シンプルなアクチュエーターについて特別なことは何もありません。再利用執行者は、前処理ステートメントを再利用します。
バッチ執行者の再利用ステートメントとバッチ更新有効な値:シンプル、再利用、バッチ
デフォルト値:シンプル
9.DEFAULTSTATEMENTTIMEOUT
タイムアウト時間を設定します。これにより、ドライバーがデータベース応答を待つ時間が決まります。
有効な値:任意のポジティブ、整数
デフォルト値:設定されていない(null)
情報要素の設定の例では、完全な構成は次のとおりです。
<settings> <setting name = "cacheenabled" value = "true"/> <setting name = "lazyloadingEnabled" value = "true"/> <setting name = "balue =" true "/> <setting name =" usecolumnlabel "value =" true "/> <setting namedent" value = "false"/> <name = "defaultexecutortype" value = "simple"/> <name = "defaultstatementtimeout" value = "25000"/> </settings>
タイプティアーゼ
タイプエイリアスは、Javaタイプの短い名前を挙げます。これはXML構成にのみ関連しており、クラスの完全に適格な名前の冗長部分を減らすためにのみ使用されます。例えば:
<typealias alias = "author" type = "domain.blog.author"/> <typealias alias = "blog" type = "domain.blog.blog"/> <typealias alias = "comment" type = "domain.blog.comment"/> <typealias alias = "post =" domain.blog.blog.post "/<typealias" type = "domain.blog.section"/> <typealias alias = "tag" type = "domain.blog.tag"/> </typealias>
この構成では、「domain.blog.blog」が使用される場所ではなく、「ブログ」は任意に使用できます。通常のJavaタイプには、多くの組み込みタイプエイリアスがあります。どちらもケースに依存しないものであり、過負荷の名前が原因で、ネイティブタイプの特別な取り扱いに注意を払う必要があります。
TypeHandlers
MyBatisがプリプロセシングステートメントでパラメーターを設定する場合でも、結果セットから値を取得する場合でも、タイププロセッサを使用して、得られた値を適切な方法でJavaタイプに変換します。次の表には、デフォルトのタイププロセッサについて説明します。
タイププロセッサを書き換えるか、独自のタイププロセッサを作成して、サポートされていないまたは標準以外のタイプを処理できます。しかし、この状況は非常にまれです! !
ObjectFactory
MyBatisは、結果オブジェクトの新しいインスタンスが作成されるたびに、ObjectFactoryインスタンスを使用して行われます。パラメーターマップが存在する場合、デフォルトのObjectFactoryは、パラメーターを備えたデフォルトのコンストラクターまたはコンストラクターを使用してターゲットクラスをインスタンス化するよりも機能しません。デフォルトのObjectFactoryを書き直したい場合は、独自のObjectFactoryを作成できます。例省略。
プラグイン
MyBatisを使用すると、特定の時点でマップされたステートメントによって実行されたコールを傍受できます。デフォルトでは、MyBatisでは、プラグインがメソッド呼び出しを傍受できるようにします。
1.執行者
(更新、クエリ、フラッシュステートメント、コミット、ロールバック、getTransaction、close、isclose)
2。パラメーターハンドラー
(getParameterObject、setParameters)
3.レスセタンドラー
(Handleresultsets、handleOutputParameters)
4.StatementHandler
(準備、パラメーター化、バッチ、更新、クエリ)
環境
MyBatisは、複数の環境で構成できます。これにより、SQLマッピングを複数のデータベースに適用できます。
覚えておくべき非常に重要な質問:複数の環境を構成できますが、SQLSessionFactoryインスタンスごとに1つのみを選択できます。したがって、2つのデータベースに接続する場合は、2つのSQLSessionFactoryインスタンスを作成する必要があります。また、3つのデータベースの場合、3つのインスタンスなどが必要です。
環境要素は、環境を構成する方法を定義します。
<環境デフォルト= "Development"> <環境ID = "Development"> <TransactionManager Type = "jdbc"> <プロパティ名= "値="値= "..."/> </transactionManager> <DataSource Type = "Pooled"> <Property name = "Driver" value = "$ {driver}"/> <propertion = "url" $ "" urermam value = "$ {username}"/> <プロパティ名= "password" value = "$ {password}"/> </dataSource> </environment> </environments>ここに注意してください:
1。デフォルト環境ID(たとえば、デフォルト= "開発")。
2。各環境要素で定義された環境ID(たとえば:ID =”開発”)。
3。トランザクションマネージャーの構成(たとえば、type = "jdbc")。
4。データソース構成(たとえば、Type = "Pooled")。
TransactionManager
MyBatisには2種類のトランザクションマネージャーがあります(つまり、type = "[jdbc | managed]"。
1.JDBC ---この構成は、JDBCのコミットとロールバック設定を直接使用し、単に使用します。データソースから取得した接続に依存して、トランザクションスコープを管理します。
2.管理---この構成はほとんど何もしません。接続をコミットしたりロールバックしたりすることはありません。また、コンテナがトランザクションのライフサイクル全体(SpringまたはJEEアプリケーションサーバーのコンテキストなど)を管理することができます。デフォルトでは、接続を閉じます。ただし、一部のコンテナはこれを望んでいないため、接続から停止する必要がある場合は、CloseConnectionプロパティをFalseに設定してください。例えば:
<TransactionManager Type = "Managed"> <プロパティ名= "CloseConnection" value = "false"/> </transactionManager>
どちらのトランザクションマネージャーもプロパティを必要としません。ただし、これらはすべてタイプエイリアスであり、それらを置き換えるには、Transacfactoryインターフェイスの実装クラスを参照する独自の完全な名前またはタイプエイリアスを独自のクラスのエイリアスに配置する必要があります。