3.Mybatis全局配置文件屬性詳解(SqlMapConfig.xml)


視頻地址:http://edu.51cto.com/sd/be679

首先我們要知道一點,該配置文件的中屬性的存放是有順序的,沒有辦法隨意的亂放。如果你屬性的配置位置出錯,會有如下錯誤提示:

The content of element type "configuration" must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)".

這個錯誤的大概意思是說,在configuration里面的屬性存放必須按照紅體字那些順序存放。

  接下來我們按照順序來看一下這些配置屬性到底是什么意思:

    1.properties屬性:加載屬性的配置文件

    比如:這個數據源信息,應該是放在一個db.properties里面然后在在數據源里引用的。

<properties resource="db.properties"></properties>//把db.properties的文件引用進來
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <!-- 配置數據庫連接信息 -->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
            </dataSource>
        </environment>
    </environments>

    2.第二個配置信息<settings>

      Mybatis在運行的時候可以調整的一些參數

      比如:是否開啟緩存,延遲加載就是在setting中配置,這里把延遲加載和開啟二級緩存的配置貼在下面    

    <!-- 開啟延遲加載 -->
    <settings>
        <!-- lazyLoadingEnabled:延遲加載啟動,默認是false -->
        <setting name="lazyLoadingEnabled" value="true"/>
        <!-- aggressiveLazyLoading:積極的懶加載,false的話按需加載,默認是true -->
        <setting name="aggressiveLazyLoading" value="false"/>
        <!-- 開啟二級緩存,默認是false -->
        <setting name="cacheEnabled" value="true"/>
    </settings>

 

      這個全局的參數別隨便亂配,因為它會影響Mybatis的運行

    3.typeAliases 別名(這個屬性用的非常平繁)

       默認支持的別名類型:我們在用parameterType指定輸入參數類型的時候需要寫全稱,但是比如:java.lang.Integer也可以寫int就是因為這個默認支             持的別名型大概支持的默認類型如下(沒有全部列出來)

  

      自定義別名:

        對單個的定義:

<typeAliases>
<!-- 
    type:就是你要為那個類去別名的路徑:包名+類型
  alias:就是你自己取的別名
--> <typeAlias type="com.etc.entity.Student" alias="student"/> </typeAliases>

        引用別名:本來該寫 com.etc.entity.Student現在只要寫alias里的名字就好

        批量定義別名:

<!-- 
    Mybatis批量定義別名:通過指定包名來定義
    就是內部去定義這個取別名的規則:
    規則:Mybatis會自動去掃描這個包底下的類,並且Mybatis自定義別名,別名就是類名(首字母大小寫都可以) -->
<package name="com.etc.entity"/>

  注意:掃描包,Mybatis自定義別名,別名就是類型首字母的大小寫都可以

    typeHanlders:類型處理器

      Mybatis中是通過typeHanlders完成java類型和數據庫類型的轉換,Mybatis內部定義的類型已經足夠我們去使用,就不需要自己在去定義。

    environments:運行環境(數據源等等)

    Mappers:關聯配置文件(就是mybatis寫在xml中的數據庫操作,需要告訴這個全局配置文件),主要有一下三種方式

      單個文件:   

<mappers>
    <mapper resource="mapper/StudentMapper.xml"/>
</mappers>

      類加載:

<!-- 
        通過類去加載該類的配置文件
        規則:mapper接口和mapper.xml映射文件的名稱必須一致 :在同一個目錄 -->
    <mapper class="com.etc.mapper.StudentMapper"/>

      批量加載:

 

 

<!--批量加載:也是掃描這個包底下的所有東西 仍然要遵守類加載的原則 -->
    <package name="com.etc.mapper"/>

 

以上就是這些就是配置文件的詳細解析。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM