Mybatis入門到精通-Mybatis配置文件詳解

6.mybatis配置文件詳解

首先看一下該全局配置文件中都有哪些能夠配置的東西:java

配置內容 做用
<properties> 用來加載屬性文件
<settings> 用來設置全局參數
<typeAliases> 用來設置類型的別名
<typeHandlers> 用來設置類型處理器
<objectFactory> 用來設置對象工廠
<plugins> 用來設置插件
<environments> 用來設置mybatis的環境
<mappers> 用來配置映射文件

  從前面的博文中能夠看出,<environments>是用來配置mybatis的環境的,在和Spring整合前是由mybatis本身管理的,可是和Spring整合後,這些配置都將被廢棄掉,<environments>部分在前面已經有提到過,這裏就再也不贅述了。而後objectFactory和plugins通常咱們不用,因此在這裏就不總結了,<typeHandlers>類型處理器是mybatis中用來完成jdbc類型和java類型之間轉換的,mybatis默認支持的類型處理器基本夠咱們使用了,通常不須要自定義。這裏主要來總結一下剩下的幾個配置的用法。數據庫

6.1 properties加載屬性文件

  咱們以前鏈接數據庫的一些配置都是在<environments>中寫死的,在實際開發中確定不是這樣子的,咱們須要將數據庫鏈接參數單獨配在jdbc.properties文件中,而後在mybatis.xml中加載jdbc.properties的屬性值便可,這就用到了<properties>了。即:緩存

<!-- 加載properties文件-->
    <properties resource="jdbc.properties"></properties>
    <!-- 配置mybatis的環境信息 -->
    <environments default="development">
        <environment id="development">
            <!-- 配置JDBC事務控制,由mybatis進行管理 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置數據源,採用mybatis鏈接池 -->
            <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>

<properties>內部還能夠定義屬性值:<property name="" value=""/>,在property中定義的屬性也能夠被<evironments>中來加載.mybatis

6.2 settings全局參數設置

mybatis框架在運行時能夠調整一些運行參數,好比:開啓二級緩存、開啓延遲加載等,有個settings全局參數配置文檔:   這些全局參數的配置會影響mybatis的運行行爲,須要的時候再設置,不須要的時候不能亂設置,這裏就不作詳細介紹了,等後面用到的時候我再針對相應的作一下介紹。app

6.3 typeAliases類型別名

  這是配置中的一個重點,咱們知道,在mapper.xml中定義了不少的statement,statement須要parameterType來指定輸入參數的類型、須要resultType來指定輸出結果的類型。若是在指定類型時輸入類型全路徑,有時候會很長,不方便進行開發,那麼咱們就能夠能夠針對parameterType或resultType指定的類型定義一些別名,在mapper.xml中經過別名<typeAliases>來定義,方便開發。框架

mybatis有默認支持的一些別名,通常基本類型都有別名,以下:   可是針對pojo的須要咱們自定義別名了,好比咱們將本身定義的User對象取個別名爲user:url

<typeAliases>
    <typeAlias type="com.qfedu.entities.User" alias="user"></typeAlias>
</typeAliases>

可是問題來了,若是工程中有不少pojo,那豈不是完蛋……這得定義多少個啊,因此mybatis幫咱們解決了這個問題,它提供了批量別名的定義,以下:spa

<typeAliases>
    <package name="com.qfedu.entities"></package>
</typeAliases>

6.4.Mappers映射配置

咱們前面使用到的<mappers>標籤是經過resource方法加載單個映射文件的,即:插件

<mappers>
    <!-- 使用資源的路徑 -->
    <mapper resource="com/qfedu/mapper/UserMapper.xml"/>
</mappers>

除了resource外,也能夠用代理

  • url來加載,只不過url指定的是絕對路徑,硬盤中的路徑;

  • 經過mapper接口來加載。經過mapper接口來加載的話要遵循一個規範:

    • 規範:須要將mapper接口類名和mapper.xml映射文件名稱保持一致,且在一個目錄中 這個規範的前提是:使用的是mapper代理的方法

<mappers>
    <mapper class="com.qfedu.mapper.UserMapper"></mapper>
</mappers>

​ 此時UserMapper.java要和UserMapper.xml在同一目錄。

  • 咱們只要指定mapper接口的包名,mybatis自動掃描包下面全部的mapper接口進行加載

<mappers>
    <mapper class="com.qfedu.mapper"></mapper>
</mappers>
相關文章
相關標籤/搜索