欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mybatis-config.xml文件中的mappers標(biāo)簽使用

 更新時間:2024年10月21日 08:42:07   作者:一只呆小白  
在MyBatis配置中,<mapper>標(biāo)簽關(guān)鍵用于指定SQL?Mapper的XML文件路徑,主要有三種指定方式:resource、url和class,Resource方式從類的根路徑開始,適合放在項目內(nèi)部保障移植性,URL方式指定絕對路徑,移植性差,適用于外部路徑

前言

在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的代碼詳解

    MyBatis-Plus使用sl4j日志打印SQL的代碼詳解

    以下是關(guān)于使用 Spring Boot 起始器替換 slf4j-api 和 logback 依賴的詳細(xì)步驟和注意事項,包括 MyBatis-Plus 的默認(rèn)日志級別信息,需要的朋友可以參考下
    2024-10-10
  • Spring Boot和Vue跨域請求問題原理解析

    Spring Boot和Vue跨域請求問題原理解析

    這篇文章主要介紹了Spring Boot和Vue跨域請求問題原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • 解決項目沒有build path的問題

    解決項目沒有build path的問題

    這篇文章主要介紹了解決項目沒有build path的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 教你如何使用Java實現(xiàn)WebSocket

    教你如何使用Java實現(xiàn)WebSocket

    這篇文章主要介紹了教你如何使用Java實現(xiàn)WebSocket問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • redis深入淺出分布式鎖實現(xiàn)下篇

    redis深入淺出分布式鎖實現(xiàn)下篇

    在單體應(yīng)用中,如果我們對共享數(shù)據(jù)不進(jìn)行加鎖操作,會出現(xiàn)數(shù)據(jù)一致性問題,我們的解決辦法通常是加鎖。下面我們一起聊聊使用redis來實現(xiàn)分布式鎖
    2022-08-08
  • JAVA中l(wèi)ist,set,數(shù)組之間的轉(zhuǎn)換詳解

    JAVA中l(wèi)ist,set,數(shù)組之間的轉(zhuǎn)換詳解

    以下是對JAVA中l(wèi)ist,set,數(shù)組之間的轉(zhuǎn)換進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下
    2013-09-09
  • mybatis學(xué)習(xí)之路mysql批量新增數(shù)據(jù)的方法

    mybatis學(xué)習(xí)之路mysql批量新增數(shù)據(jù)的方法

    這篇文章主要介紹了mybatis學(xué)習(xí)之路mysql批量新增數(shù)據(jù)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • Spring實例化bean的方式代碼詳解

    Spring實例化bean的方式代碼詳解

    這篇文章主要介紹了Spring實例化bean的方式代碼詳解,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • 詳解Java在redis中進(jìn)行對象的緩存

    詳解Java在redis中進(jìn)行對象的緩存

    這篇文章主要介紹了Java在redis中進(jìn)行對象的緩存,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Spring核心方法refresh的使用解析

    Spring核心方法refresh的使用解析

    這篇文章主要介紹了Spring核心方法refresh的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評論