Mybatis核心配置文件中的標籤介紹

0. 標籤順序

Mybatis核心配置文件中有很多標籤,它們誰誰寫在前寫在後其實是💥有順序💥要求的:

從前到後:

properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?

像properties要在typeAliases之前,typeAliases要在mappers之前

1. typeAliases和typeAlias

<typeAliases>
	<typeAlias type="com.atguigu.mybatis.pojo.User" alias="abc"></typeAlias>
</typeAliases>

image-20220818215516622

typeAlias:設置某個類型的別名

屬性:

  • type:設置需要的實體類型的別名

  • alias:設置某個類型的別名,若不設置該屬性,💥默認別名為其類名且不區分大小寫

    <typeAlias type="com.atguigu.mybatis.pojo.User></typeAlias>
    

    例如這個不寫alias,默認別名為User,不區分大小寫

2. package

當實體類過多是,一般不採用一個個寫typeAlias別名的做法,而是通過包設置別名。

<typeAliases>
	<package name="com.atguigu.mybatis.pojo"/>
</typeAliases>

package:以包為單位,將包下💦所有的類型設置默認的類型別名,即類名且不區分大小寫

3. mappers和mapper

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

mapper:引入mybatis的映射文件

  • ❄️🌀ke問題:當映射文件過多時,會出現與typeAlias一樣的問題。

  • ☀️解決方法:使用package標籤以包為單位引入映射文件,和typeAlias類似 。

    <mappers>
    	<package name="com.atguigu.mybatis.mapper"/>
    </mappers>
    
  • 🐔🐬package標籤的使用有兩個要求:

    • mapper介面所在的包要和映射文件所在的包一致

    • mapper介面要和映射文件的名字一致

    image-20220818222650873
  • 注意上面映射文件這裡com.atguigu.mybatis.mapper是一個包,打開本地目錄後是這樣的,而不是一個文件夾名

    image-20220818223246598

    怎麼創建這樣一個包呢??

    1. image-20220818223620325
    2. image-20220818223817574
  • 為什麼mapper介面文件和映射文件要設置為😠同一包目錄??

    image-20220818224840984

    因為這樣最終載入完介面文件和映射文件是在同一目錄下放在一起的。

4. 總結

部分內容來自🌹🌹 B站尚矽谷課程 🌹。老師講得很好,有興趣的可以聽聽。