首先看一下該全局配置文件中都有哪些能夠配置的東西:java
配置內容 | 做用 |
---|---|
<properties> |
用來加載屬性文件 |
<settings> |
用來設置全局參數 |
<typeAliases> |
用來設置類型的別名 |
<typeHandlers> |
用來設置類型處理器 |
<objectFactory> |
用來設置對象工廠 |
<plugins> |
用來設置插件 |
<environments> |
用來設置mybatis的環境 |
<mappers> |
用來配置映射文件 |
從前面的博文中能夠看出,<environments>
是用來配置mybatis的環境的,在和Spring整合前是由mybatis本身管理的,可是和Spring整合後,這些配置都將被廢棄掉,<environments>
部分在前面已經有提到過,這裏就再也不贅述了。而後objectFactory和plugins通常咱們不用,因此在這裏就不總結了,<typeHandlers>
類型處理器是mybatis中用來完成jdbc類型和java類型之間轉換的,mybatis默認支持的類型處理器基本夠咱們使用了,通常不須要自定義。這裏主要來總結一下剩下的幾個配置的用法。數據庫
咱們以前鏈接數據庫的一些配置都是在<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
mybatis框架在運行時能夠調整一些運行參數,好比:開啓二級緩存、開啓延遲加載等,有個settings全局參數配置文檔: 這些全局參數的配置會影響mybatis的運行行爲,須要的時候再設置,不須要的時候不能亂設置,這裏就不作詳細介紹了,等後面用到的時候我再針對相應的作一下介紹。app
這是配置中的一個重點,咱們知道,在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>
咱們前面使用到的<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>