Mybatis mapper標(biāo)簽中配置子標(biāo)簽package的坑及解決
mapper標(biāo)簽中配置子標(biāo)簽package的坑

首先java目錄下的.java文件和resources下的.xml文件必須要在同一目錄下,但是在resource中創(chuàng)建目錄時不要順手像在java文件中創(chuàng)建包一樣,直接創(chuàng)建了com.mapper文件夾,這樣不是創(chuàng)建了com - mapper兩個文件夾,而是創(chuàng)建了一個叫做com.mapper的文件夾?。?!
這樣會導(dǎo)致.java文件和.xml文件位置不同,這個位置坑了我一個小時,希望各位注意一下。
Mybatis中mappers標(biāo)簽介紹
MyBatis 是基于 sql 映射配置的框架,sql 語句都寫在 Mapper 配置文件中,當(dāng)構(gòu)建 SqlSession 類之后,就需要去讀取 Mapper 配置文件中的 sql 配置。
而 mappers 標(biāo)簽就是用來配置需要加載的 sql 映射配置文件路徑的。
配置方式
mappers 標(biāo)簽下有許多 mapper 標(biāo)簽,每一個 mapper 標(biāo)簽中配置的都是一個獨立的映射配置文件的路徑,配置方式有以下幾種
1.接口所在包
package標(biāo)簽,通過name屬性指定mapper接口所在的包名 ,
此時對應(yīng)的映射文件必須與接口位于同一路徑下,并且名稱相同
<mappers> <!-- mapper接口所在的包名 --> <package name="com.i.mapper"/> </mappers>
2.相對路徑配置
mapper標(biāo)簽,通過resource屬性引入classpath路徑的相對資源
<mappers>
<!-- 通過resource屬性引入classpath路徑的相對資源-->
<mapper resource="com/i/mapper/FlowerMapper.xml"/>
<mapper resource="com/i/mapper/StudentMapper.xml"/>
<mapper resource="com/i/mapper/TeacherMapper.xml"/>
</mappers>
3.類注冊引入
mapper標(biāo)簽,通過class屬性指定mapper接口名稱,
此時對應(yīng)的映射文件必須與接口位于同一路徑下,并且名稱相同
<mappers>
<!-- 使用接口信息進(jìn)行配置 -->
<mapper class="com.i.mapper.FlowerMapper"/>
<mapper class="com.i.mapper.StudentMapper"/>
<mapper class="com.i.mapper.TeacherMapper"/>
</mappers>
4.使用URL絕對路徑方式引入(不用)
mapper標(biāo)簽,通過url引入網(wǎng)絡(luò)資源或者本地磁盤資源
<mappers> <mapper url="xml文件訪問URL" /> <mapper url="file:///var/mappers/UserMapper.xml"/> </mappers>
使用總結(jié)
只有配置了 mappers 信息后,MyBatis 才知道去哪里加載 Mapper 映射文件,
開發(fā)中,根據(jù)項目中 Mapper 的配置偏好,選擇整合配置文件的配置方式
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot項目整合jasypt實現(xiàn)過程詳解
這篇文章主要介紹了SpringBoot項目整合jasypt實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08
Spring ApplicationContextAware 接口的作用及使用方式
Spring提供了許多回調(diào)接口,用于Bean生命周期中執(zhí)行特定的操作,通過實現(xiàn)ApplicationContextAware接口,Spring提供了一種便捷的方式讓 Bean獲取對Spring容器的引用,本文介紹ApplicationContextAware接口的作用、使用方式,以及在實際應(yīng)用中的常見場景,感興趣的朋友一起看看吧2024-01-01
java中g(shù)et()方法和set()方法的作用淺析
這篇文章主要給大家介紹了關(guān)于java中g(shù)et()方法和set()方法的作用,set是是對數(shù)據(jù)進(jìn)行設(shè)置,而get是對數(shù)據(jù)進(jìn)行獲取,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07

