亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Mybatis 如何在配置文件中給實(shí)體類起別名

 更新時間:2021年07月14日 14:15:57   作者:codingCoge  
這篇文章主要介紹了Mybatis 如何在配置文件中給實(shí)體類起別名的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Mybatis 給實(shí)體類起別名

全局配置文件中的標(biāo)簽:

標(biāo)簽3: typeAliases 別名處理器 可以為java類型起別名 別名忽略大小寫

原來:

<select id="getTeacherById" parameterType="integer" resultType="entity.Teacher">

ctrl+左鍵就可以定位到該類 其實(shí)比較方便

起了別名后就難找了

注意:

有個問題 typeAlias標(biāo)簽 還有位置問題 得放在proerties后面 而不是configuration后面

有三個方法起別名:

第一種:單個起別名

    <typeAliases>
        <typeAlias type="entity.Teacher" alias="ss"/>
    </typeAliases>

type是要為起別名的類型全類名 默認(rèn)是類名的小寫teacher

alias:是指新的別名

第二種:批量起別名

<typeAliases>   
        <package name="entity"/>
    </typeAliases>

package:為某個包下的所有類批量起別名

name:指定包名 以及下面所有的后代包的每一個類都起一個默認(rèn)別名(類名小寫)

第三種:使用注解

如果此時類名沖突怎么辦?

使用@Alias注解為某個類指定新的別名:

@Alias("ss")
public class Teacher {

注意:得考慮是否起別名,有時候起別名反而更麻煩了

其實(shí)Mybatis內(nèi)部就有很多起別名的:來看看 全局配置Configuration中的別名

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 取別名問題

今天學(xué)習(xí)Mybatis時在取別名這里總是報錯,如圖所示

錯誤信息:

Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 36; columnNumber: 17; 元素類型為 “configuration” 的內(nèi)容必須匹配 “(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)”。

最后發(fā)現(xiàn)只需要在定義別名的時候把typeAlias標(biāo)簽放在properties標(biāo)簽后面就好了

<?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屬性指定的是實(shí)體類全限定類名。alias屬性指定別名,當(dāng)指定了別名就不區(qū)分大小寫,linux中仍然區(qū)分大小寫,且typeAlias標(biāo)簽必須放在properties后面-->
    <properties resource="jdbcConfig.properties">
    </properties>
    <typeAliases>
        <package name="domain"></package>
    </typeAliases>
    <!--配置環(huán)境-->
    <environments default="mysql">
        <!--配置mysql的環(huán)境-->
        <environment id="mysql">
            <!--配置事務(wù)的類型-->
            <transactionManager type="JDBC">
            </transactionManager>
            <!--配置數(shù)據(jù)源(連接池)-->
            <dataSource type="POOLED">
                <!--配置連接數(shù)據(jù)庫的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獨(dú)立的配置文件
        如果是用注解來配置的話,此處應(yīng)該使用class屬性指定被注解的dao全限定類名
    -->
    <mappers>
        <package name="dao"/>
    </mappers>
</configuration>

之后運(yùn)行就正常了

在這里插入圖片描述

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論