記事のディレクトリ
1.構成の概要
MyBatis
の構成はMyBatis
、動作の設定と属性情報に影響します。次の図は、構成ファイル内の属性を示しています。これらの属性は、上記の順序で記述する必要がある
ことに注意しmybatis-config.xml
てください。
次に、各構成の役割
1.プロパティ
この構成の機能は、外部構成ファイルを参照することです。新しい.properties
ファイルを作成し、データベースに接続するための構成情報をファイルに書き込んでから、properties
属性を付けてインポートすることができます。デモは次のとおりです。
新しい構成ファイルを作成しますdb.properties
::
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/MyBatis_DB?serverTimezone=GMT
username=root
password=root
次にmybatis-config.xml
、属性を記述します。
<!-- properties 引入外部配置文件 -->
<properties resource="db.properties">
<!--
也可以在这里直接写
<property name="xxxx" value="xxxx" />
-->
</properties>
属性が複数の場所で構成されている場合、MyBatisは次の順序でロードされます。
- まず、properties要素の本体で指定されているプロパティを読み取ります。
- 次に、properties要素のresource属性に従ってクラスパスの下のプロパティファイルを読み取るか、url属性で指定されたパスに従ってプロパティファイルを読み取り、以前に読み取ったプロパティを同じ名前で上書きします。
- 最後に、メソッドパラメータとして渡された属性が読み込まれ、以前に読み取られた同じ名前の属性が上書きされます。
2.設定
settings
これはMybatis
グローバル構成であり、MyBatis
いくつかのデフォルト構成が規定されています。他の構成が必要なsettings
場合は、ラベルに書き込むだけです。
完全に構成されたsettings
要素の例は次のとおりです。
<settings>
<setting name="cacheEnabled" value="true"/>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="multipleResultSetsEnabled" value="true"/>
<setting name="useColumnLabel" value="true"/>
<setting name="useGeneratedKeys" value="false"/>
<setting name="autoMappingBehavior" value="PARTIAL"/>
<setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
<setting name="defaultExecutorType" value="SIMPLE"/>
<setting name="defaultStatementTimeout" value="25"/>
<setting name="defaultFetchSize" value="100"/>
<setting name="safeRowBoundsEnabled" value="false"/>
<setting name="mapUnderscoreToCamelCase" value="false"/>
<setting name="localCacheScope" value="SESSION"/>
<setting name="jdbcTypeForNull" value="OTHER"/>
<setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>
次の表に、さらに重要な構成をいくつか示します。
セット名 | 説明 | 実効値 | デフォルト |
---|---|---|---|
cacheEnabled |
すべてのマッパー構成ファイルで 構成されているキャッシュをグローバルに有効または無効にします |
true | false |
true |
lazyLoadingEnabled |
遅延負荷グローバルスイッチ | true | false |
false |
logImpl |
指定MyBatis 指定されていない、それが自動的に検索される場合は、使用されるログの特定の実装を |
SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | NO_LOGGING |
設定されていません |
3.typeAliasesタイプエイリアス
ドキュメントを作成MyBatis
するときは、エンティティクラスのフルクラス名を入力するxml
たびに入力する必要がありますreturnType
。たとえば、
これは非常に面倒です。typeAliases
この関数は、これらのフルクラス名のエイリアスを指定するだけで、作成が簡単になります。
エイリアシングには3つの方法があります。
- エイリアス単一エンティティクラス
<typeAliases> <typeAlias alias="User" type="com.wzq.domain.User" /> </typeAliases>
- パッケージ名を指定し、パッケージの下にあるすべてのエンティティクラスをエイリアスに変換します(デフォルトはクラス名の最初の文字の小文字です)
<typeAliases> <package name="com.wzq.domain"/> </typeAliases>
- アノテーションを使用すると(前の手順で記述する必要があります)、エイリアスのクラス名にアノテーションを追加できます
@Alias("User") public class User{ ... }
4.typeHandlersタイププロセッサ
MyBatis
ステートメントは、前処理(PreparedStatement
時間)集中パラメーターまたは結果から取得された値を提供し、取得された値は適切な方法でタイププロセッサーJava
タイプに変換されます。次の表に、デフォルトタイプのプロセッサの一部を示します。
5.objectFactoryオブジェクトファクトリ
MyBatis
結果オブジェクトの新しいインスタンスが作成されるたびに、オブジェクトファクトリ(ObjectFactory
)を使用してインスタンスをインスタンス化し、作業を完了します。デフォルトのオブジェクトファクトリが行う必要があるのは、デフォルトの引数なしコンストラクターを介して、または既存のパラメーターマッピングを介してターゲットクラスをインスタンス化し、パラメーターを使用してコンストラクターを呼び出すことです。オブジェクトファクトリのデフォルトの動作をオーバーライドする場合は、独自のオブジェクトファクトリを作成することでオーバーライドできます。
6、プラグイン
MyBatis
プラグイン機能は依然として非常に強力であり、次のような多くの拡張機能があります。
mybatis-generator-core
mybatis-plus
- ユニバーサル
mapper
- などなど
7、環境環境構成
MyBatis
複数の環境を構成できますが、複数の環境を構成できますが、SqlSessionFactoryインスタンスごとに選択できる環境は1つだけです。
<!-- default字段定义了当前使用的是哪一套配置 -->
<environments default="development">
<environment id="development">
<!-- 使用JDBC的事务管理 -->
<transactionManager type="JDBC">
<property name="..." value="..."/>
</transactionManager>
<!-- type = "POOLED" 规定了这里有数据库链接池 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
<!-- 另一套配置 -->
<environment id="test">
<transactionManager type="JDBC">
<property name="..." value="..."/>
</transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
8、マッパーマッパー
mappers
役割は次のとおりです。バインディングMapper
ファイルを登録します。バインドする方法は4つあります。
方法1:使用するresource
<mappers>
<mapper resource="com/wzq/mapper/UserMapper.xml"/>
</mappers>
方法2:使用するclass
<mappers>
<mapper class="com.wzq.mapper.UserMapper"/>
</mappers>
ただし、ここMapper
ではMapper.xml
ファイルと同じパッケージに含まれ、同じ名前である必要があるため、3番目の方法です。
方法3:パッケージ内のすべてのマッパーインターフェイス実装をマッパーとして登録します
<mappers>
<package name="org.mybatis.builder"/>
</mappers>
4番目の方法はurl
、あまり使用されていないバインディングを使用することです。そのため、ここにはリストされません。