MyBatisの設定ファイルの詳細な説明


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、あまり使用されていないバインディングを使用することです。そのため、ここにはリストされません。

おすすめ

転載: blog.csdn.net/lesileqin/article/details/112986892