1. グローバル設定ファイルの有用性
Mybatis は、データ ソース、トランザクション マネージャー、ランタイム動作、処理エイリアス、型処理、プラグイン、およびその他の情報を構成ファイルを通じて構成できます。mybatis アプリケーションが初期化されると、プログラムはグローバル構成ファイルを解析し、構成された情報を使用して構成コンポーネントをインスタンス化し、基本構成の初期化を完了します。mybatis のグローバル設定ファイルでは、対応するラベルを通じて対応する設定が完了しており、全体的なラベル構造は次のようになります。
注: グローバル設定ファイルのタグは、記述するときに上記の順序で記述する必要があります。そうしないと問題が発生します。また、mybatis を初期化するときに、xml 設定ファイルを使用する必要はありませんが、どのメソッドを使用しても、mybatis の起動および初期化時に設定クラス Configuration にインスタンス化されるため、Java API を通じて実装することもできます。
2. ラベルの目的
上で紹介したタグはどのような用途に使われるのか、表で見てみましょう
3. ラベルの詳細な導入と使用
プロパティ
外部プロパティ構成ファイルをインポートするための情報。次の 2 つの使用方法があります。
<properties resource="类入类路径下的资源"></properties>
<properties url="网络或者磁盘路径"></properties>
設定
これは主に、実行中の mybatis の動作を制御するためのものです。一般的に使用される属性をいくつか示します。関与していない人は、mybatis 公式 Web サイトにアクセスして、mybatis – MyBatis 3 | 構成を表示してください。
<settings>
<!-- 全局性开启和关闭任何缓存 -->
<setting name="cacheEnabled" value="true"/>
<!-- 延迟加载的全局开关 -->
<setting name="lazyLoadingEnabled" value="true"/>
<!-- 允许单条语句返回多个结果集 -->
<setting name="multipleResultSetsEnabled" value="true"/>
<!-- 允许使用数据字段列的别名代替数据列名 -->
<setting name="useColumnLabel" value="true"/>
<!-- 设置为true时,允许jdbc自动生成主键 -->
<setting name="useGeneratedKeys" value="false"/>
<!-- 设置超时时间,它决定数据库驱动等待数据库响应的秒数 -->
<setting name="defaultStatementTimeout" value="25"/>
<!-- 是否开启驼峰命名自动映射 -->
<setting name="mapUnderscoreToCamelCase" value="false"/>
</settings>
typeAliases
エイリアス プロセッサ。名前 (パス) が長すぎる一部の Java クラスのエイリアスを作成し、今後はそのエイリアスを使用します。
具体的な使い方は以下の通りです。
<!-- 用来为java类型设置一个简称,主要用于降低冗余的全限定类型名书写 -->
<typeAliases>
<!-- 直接指定一个类型,为其取别名 -->
<typeAlias alias="User" type="com.app.test.mapper.User" />
<!-- 给包起别名,其包下对应的所有类型的别名在没有使用@Alias注解的情况下会使用 Bean 的首字母小写的非限定类名来作为它的别名 -->
<package name="com.app.test.mapper"/>
<!-- 例如此处,设置后,com.app.test.mapper下所有的Bean的别名为 Bean的首字母小写的非限定类名 -->
<!-- 在为包起别名基础上,也可以通过注解方式设置别名, @Alias('别名') -->
</typeAliases>
mybatis には、次のような組み込みエイリアスがいくつかあります。
タイプハンドラー
typeHandlers は型プロセッサです。jdk 1.8 はすべての JSR310 仕様を実装しており、JSR310 に基づいて mybatis によって作成されたさまざまな日付と時刻のプロセッサを使用できます。mybatis 3.4 より前のバージョンではこれらのプロセッサを手動で登録する必要があり、それ以降のバージョンでは自動的に登録されます。これについては何も言うことはありませんが、現在のラベルはカスタムプロセッサを構成するために使用されているように感じます。
開発者は、 org.apache.ibatis.type.TypeHandler インターフェースを実装するか、非常に便利なクラス org.apache.ibatis.type.BaseTypeHandler を継承することによって、型ハンドラーをカスタマイズできます。開発時にタイププロセッサを自分で定義していないため、ここでは詳しく説明しませんが、カスタマイズが必要な場合は、mybatis 公式 Web サイトを確認してください。
プラグイン
MyBatis では、マップされたステートメントの実行中の特定の時点で呼び出しをインターセプトできます。ここでは詳しく説明しませんが、後ほどmybatisでのプラグインの実装と使い方で紹介します。
環境、環境、トランザクションマネージャー、データソース
これら 4 つのタグは、次のようにネストされ、一緒に使用されます。
異なるデータ ソースを表すように複数の環境を環境内に構成できます。各データ ソースは環境に対応し、各環境には異なるデータ ソースを区別するための一意の ID があります。
トランザクションマネージャーの設定にはtransactionManagerを使用します。JDBCとMANAGEDの2つの方法があります。一般的にはJDBCが使用できます。spring+mybatisプロジェクトではここでの設定は必要なく、springがトランザクションを管理します。
dataSource は、データ ソースの接続情報、トランザクション分離レベル、接続数、タイムアウトなどを構成するために使用されます。
<!-- enviroments中可以配置多个environment, 其中default属性指定某种环境, 可以达到快速切换的效果 -->
<environments default="development">
<!-- 用于配置一个具体的环境信息,id属性代表当前环境的唯一标识,enviroments中的default属性就是根据这里的id进行转换 -->
<environment id="development">
<!-- 事务管理器:
type属性:事务管理器的类型,可以是自带的JDBC,也可以是自定义的事务管理器
自定义的事务管理器实现TransactionFactory接口,设置type时,使用全类名
-->
<transactionManager type="JDBC"/>
<!-- 数据源:
type属性:数据源类型有三个UNPOOLED、POOLED、JNDI
也可以使用自定义数据源,自定义的数据源实现DataSourceFactory接口,设置type时,使用全类名
-->
<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>
データベースIDプロバイダー
複数のデータベース ベンダーをサポートしています。具体的な用途は次のとおりです。
<!-- 配置支持多个厂商的数据库 -->
<databaseIdProvider type="DB_VENDOR">
<property name="MySQL" value="mysql"/>
<property name="Oracle" value="oracle"/>
</databaseIdProvider>
ここで構成されたデータベースは SQL マッピング ファイルで使用され、SQL ステートメントに対応するデータベース タイプを指定します。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.app.test.mapper.UserMapper">
<select id="selectUser" parameterType="long" resultType="com.app.test.mapper.User" databaseId="mysql">
select * from oa_user where id = #{
id}
</select>
<select id="selectUser" parameterType="long" resultType="com.app.test.mapper.User" databaseId="oracle">
select * from oa_user where id = #{
id}
</select>
</mapper>
マッパー
マッパータグを使用してSQLマッピングファイルをグローバル構成ファイルに登録します
<mappers>
<mapper resource="com/app/test/mapper/UserMapper.xml"/>
<!-- 批量注册 -->
<package name="com.app.test.mapper"/>
</mappers>
上記は、mybatis グローバル設定ファイルの簡単な紹介です。
この記事は少し変更されています。記事を参照してください: https://blog.csdn.net/chaizepeng/article/details/119605823