mybatis-config.xml文件中的mappers標(biāo)簽使用
前言
在MyBatis中,< mapper >標(biāo)簽非常重要,因為它對應(yīng)著我們存放sql語句的xml文件,在之前的使用中我們都是使用resource來指定路徑,但其實除了resource可以指定路徑的還有url和class但路徑形式有所不同,下面來討論一下有什么不同。
resource
resource對應(yīng)的路徑是從類的根路徑開始的。
什么是類的根路徑?
以在idea的maven項目中,src文件夾下的main文件夾下的java文件夾和resources文件夾同級,雖然二者是兩個文件夾,但他們其實都是類的根路徑。
從圖中可以看出,上面java下的com文件夾和resource文件夾下的xml文件在target文件夾中處于同一文件夾的同一級。
resource用法實例
resources文件夾下位置
url
這種方式是一種絕對路徑的方式,這種方式不要求配置文件必須放到類路徑當(dāng)中,哪里都行,只要提供一個絕對路徑就行。這種方式使用極少,因為移植性太差。
為什么說移植性太差?
因為在例如在windows下url對應(yīng)的路徑帶有D盤等,但在mac和Linux下沒有D盤的概念,這就會造成,項目的移植性很差。
class
這個位置提供的是mapper接口的全限定接口名,必須帶有包名的。
mapper標(biāo)簽的作用是指定SqlMapper.xml文件的路徑,指定接口名有什么用呢?
舉例:
< mapper class=“com.powernode.mybatis.mapper.CarMapper”/>
如果你class指定是:com.powernode.mybatis.mapper.CarMapper
那么mybatis框架會自動去com/powernode/mybatis/mapper目錄下查找CarMapper.xml文件。
注意:也就是說:如果你采用這種方式,那么你必須保證CarMapper.xml文件和CarMapper接口必須在同一個目錄下。并且名字一致。
- CarMapper接口-> CarMapper.xml
- LogMapper接口-> LogMapper.xml
名稱一致很好實現(xiàn),在同一目錄下如何實現(xiàn)?難道我們要在java文件夾下的mapper文件夾下創(chuàng)建xml文件?答案是否定
的。
上面我們討論resource的時候,我們發(fā)現(xiàn)java文件夾和resources文件夾其實是“一個文件夾
”,只不過起了兩個名字。因此我們只需要在resources文件夾下創(chuàng)建同等的文件夾結(jié)構(gòu)就可以了。
實戰(zhàn)
在resources文件夾下創(chuàng)建同等文件夾
這里必須是/
不可以是.
具體為什么,你可以試試。
放文件
設(shè)置mapper標(biāo)簽
運行一個測試案例
結(jié)果
再次查看target文件夾
可以看出上面我們我們分別將接口和xml文件放在Java和resources同級目錄下,但其實他們在同一目錄下,再次證實。二者分別放在java和resources文件夾下的同級文件夾下,最終會被放在同一個文件夾下。
問題
如果有多個.xml文件我們一一寫出來的話mapper標(biāo)簽也會有很多,還是很麻煩的,強大的MyBatis又給我們解決了
我們只需要使用package標(biāo)簽即可,我們只需要指定接口(動態(tài)代理相關(guān)知識)所在包名即可,不需要一一指定接口名,但實現(xiàn)的功能是一樣的。
這就意味著我們以后不用再一一指定xml文件了,還是非常舒服的。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatis-Plus使用sl4j日志打印SQL的代碼詳解
以下是關(guān)于使用 Spring Boot 起始器替換 slf4j-api 和 logback 依賴的詳細(xì)步驟和注意事項,包括 MyBatis-Plus 的默認(rèn)日志級別信息,需要的朋友可以參考下2024-10-10JAVA中l(wèi)ist,set,數(shù)組之間的轉(zhuǎn)換詳解
以下是對JAVA中l(wèi)ist,set,數(shù)組之間的轉(zhuǎn)換進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下2013-09-09mybatis學(xué)習(xí)之路mysql批量新增數(shù)據(jù)的方法
這篇文章主要介紹了mybatis學(xué)習(xí)之路mysql批量新增數(shù)據(jù)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02