中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mybatis怎么在配置文件中給實體類起別名

發布時間:2021-07-14 15:32:03 來源:億速云 閱讀:411 作者:chen 欄目:開發技術

本篇內容介紹了“Mybatis怎么在配置文件中給實體類起別名”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

Mybatis 給實體類起別名

全局配置文件中的標簽:

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

原來:

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

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

起了別名后就難找了

注意:

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

有三個方法起別名:

第一種:單個起別名

<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內部就有很多起別名的:來看看 全局配置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 取別名問題

今天學習Mybatis時在取別名這里總是報錯,如圖所示

錯誤信息:

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

Mybatis怎么在配置文件中給實體類起別名

最后發現只需要在定義別名的時候把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>

之后運行就正常了

Mybatis怎么在配置文件中給實體類起別名

“Mybatis怎么在配置文件中給實體類起別名”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南郑县| 措勤县| 叶城县| 安乡县| 巨鹿县| 石楼县| 广安市| 新龙县| 富阳市| 扶风县| 横峰县| 保康县| 诸暨市| 犍为县| 息烽县| 泰来县| 临朐县| 航空| 朝阳区| 洪泽县| 夹江县| 九龙坡区| 格尔木市| 怀仁县| 马关县| 文山县| 乌拉特后旗| 绥滨县| 鄯善县| 江达县| 刚察县| 中山市| 久治县| 德清县| 三原县| 高碑店市| 新余市| 英山县| 肥城市| 安多县| 古交市|