Mybatisはどのように構成ファイルに実体類に別名を付けるか?
Mybatisは本体類に別名をつける
グローバルプロファイルのタブ:
タグ3:typeAliases別名プロセッサは、javaタイプから別名を付けて、大文字と小文字を無視できます。
元:
別名をつけると探しにくいです。
注意:
問題があります。typeAliasラベルはまだ位置問題があります。configrationの後ろに置かなければなりません。
三つの方法から別名があります。
第一種類:単一から別名
第二種類:ロットからエイリアス
第三種類:注釈を使う
もしこの時類名が衝突したらどうすればいいですか?
@Aliasコメントを使って、あるクラスに新しいエイリアスを指定します。
実はMybatis内部には別名がたくさんあります。全体構成Configrationの別名を見てみます。
今日はMybatisを勉強していますが、別名を取っています。ここではいつも間違いがあります。
エラーメッセージ:
Cause:org.apache.ibatis.builder.Burder Exception:Err creating document instance.Cause:org.xml.sax.SAXP seException;ラインNumber:36columnNumber:17要素のタイプは「configration」の内容にマッチしていなければなりません。settingstype Aliasestype Handlersobject Factoryobject Wrapper Factory?reflector FactorypluginsenvironmentsdatabaseIdProvidermappers?」
最後にエイリアスを定義する時に、typeAliasタグをpropertiesタグの後ろに置くだけでいいです。
以上は個人の経験ですので、参考にしていただければと思います。
グローバルプロファイルのタブ:
タグ3:typeAliases別名プロセッサは、javaタイプから別名を付けて、大文字と小文字を無視できます。
元:
<select id="getTeacherById" parameterType="integer" resultType="entity.Teacher">
ctrl+左ボタンはこのクラスに位置していますが、実は便利です。別名をつけると探しにくいです。
注意:
問題があります。typeAliasラベルはまだ位置問題があります。configrationの後ろに置かなければなりません。
三つの方法から別名があります。
第一種類:単一から別名
<typeAliases>
<typeAlias type="entity.Teacher" alias="ss"/>
</typeAliases>
typeはエイリアスをつけるタイプの全類名です。デフォルトはクラス名の小文字teacherです。alias
:新しい別名のことです。第二種類:ロットからエイリアス
<typeAliases>
<package name="entity"/>
</typeAliases>
package
:あるパッケージのすべてのクラスに別名を付けます。name
:パケット名と以下のすべての後代パケットのそれぞれのクラスにデフォルトのエイリアス(類名小文字)が付けられています。第三種類:注釈を使う
もしこの時類名が衝突したらどうすればいいですか?
@Aliasコメントを使って、あるクラスに新しいエイリアスを指定します。
@Alias("ss")
public class Teacher {
注意:別名をつけるかどうかを考えないといけません。別名をつけるとかえって面倒になります。実はMybatis内部には別名がたくさんあります。全体構成Configrationの別名を見てみます。
public Configuration() {
typeAliasRegistry.registerAlias("JDBC", JdbcTransactionFactory.class);
typeAliasRegistry.registerAlias("MANAGED", ManagedTransactionFactory.class);
typeAliasRegistry.registerAlias("JNDI", JndiDataSourceFactory.class);
typeAliasRegistry.registerAlias("POOLED", PooledDataSourceFactory.class);
typeAliasRegistry.registerAlias("UNPOOLED", UnpooledDataSourceFactory.class);
typeAliasRegistry.registerAlias("PERPETUAL", PerpetualCache.class);
typeAliasRegistry.registerAlias("FIFO", FifoCache.class);
typeAliasRegistry.registerAlias("LRU", LruCache.class);
typeAliasRegistry.registerAlias("SOFT", SoftCache.class);
typeAliasRegistry.registerAlias("WEAK", WeakCache.class);
typeAliasRegistry.registerAlias("DB_VENDOR", VendorDatabaseIdProvider.class);
typeAliasRegistry.registerAlias("XML", XMLLanguageDriver.class);
typeAliasRegistry.registerAlias("RAW", RawLanguageDriver.class);
typeAliasRegistry.registerAlias("SLF4J", Slf4jImpl.class);
typeAliasRegistry.registerAlias("COMMONS_LOGGING", JakartaCommonsLoggingImpl.class);
typeAliasRegistry.registerAlias("LOG4J", Log4jImpl.class);
typeAliasRegistry.registerAlias("LOG4J2", Log4j2Impl.class);
typeAliasRegistry.registerAlias("JDK_LOGGING", Jdk14LoggingImpl.class);
typeAliasRegistry.registerAlias("STDOUT_LOGGING", StdOutImpl.class);
typeAliasRegistry.registerAlias("NO_LOGGING", NoLoggingImpl.class);
typeAliasRegistry.registerAlias("CGLIB", CglibProxyFactory.class);
typeAliasRegistry.registerAlias("JAVASSIST", JavassistProxyFactory.class);
Mybatisは別名の問題を取ります。今日はMybatisを勉強していますが、別名を取っています。ここではいつも間違いがあります。
エラーメッセージ:
Cause:org.apache.ibatis.builder.Burder Exception:Err creating document instance.Cause:org.xml.sax.SAXP seException;ラインNumber:36columnNumber:17要素のタイプは「configration」の内容にマッチしていなければなりません。settingstype Aliasestype Handlersobject Factoryobject Wrapper Factory?reflector FactorypluginsenvironmentsdatabaseIdProvidermappers?」
最後にエイリアスを定義する時に、typeAliasタグをpropertiesタグの後ろに置くだけでいいです。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--typeAlias 。type 。alias , ,linux , typeAlias properties -->
<properties resource="jdbcConfig.properties">
</properties>
<typeAliases>
<package name="domain"></package>
</typeAliases>
<!-- -->
<environments default="mysql">
<!-- mysql -->
<environment id="mysql">
<!-- -->
<transactionManager type="JDBC">
</transactionManager>
<!-- ( )-->
<dataSource type="POOLED">
<!-- 4 -->
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!-- , dao
, class dao
-->
<mappers>
<package name="dao"/>
</mappers>
</configuration>
その後は正常に運行します。以上は個人の経験ですので、参考にしていただければと思います。