1. 程式人生 > 程式設計 >解決Spring boot整合mybatis,xml資原始檔放置及路徑配置問題

解決Spring boot整合mybatis,xml資原始檔放置及路徑配置問題

網上各種解決方案,我試了好久,整合了幾篇文章才湊出來,在這裡分享一下,實在不想網友們在這裡面繞圈子,畢竟,寫程式碼的時間是愉快的,解決bug也是愉快的,但也是一直在bug裡面繞圈子就不爽了。

親自試驗:

1) 我的mapper和xml是這樣子放置的

解決Spring boot整合mybatis,xml資原始檔放置及路徑配置問題

2) 在.xml中namespace是這樣的:

解決Spring boot整合mybatis,xml資原始檔放置及路徑配置問題

3) application.properties中mybatis.mapper-locations得這麼配置到xml

解決Spring boot整合mybatis,xml資原始檔放置及路徑配置問題

4) 最後呢,你只要在pom.xml中build下這樣配置

解決Spring boot整合mybatis,xml資原始檔放置及路徑配置問題

5) 按照我這種位置防止,把響應的包名換成自己的,就基本上不會沒有什麼問題的。

也不用去加什麼*Application中去加什麼註解@MapperScan(value = "com.acme.shop.mapper")什麼的了,不需要呢。

補充知識:mybatis-plus的 mapper.xml 路徑配置的坑

問題:

在SpringBoot整合MyBatis時,若mapper對映檔案在java路徑下,就會一直報錯Invalid bound statement (not found): xxx.xxxMapper.selectxx

解決Spring boot整合mybatis,xml資原始檔放置及路徑配置問題

說明Mapper介面是可以呼叫到的,問題就出在無法對映到Mapper.xml檔案。

同時檢視輸出target目錄下,沒有xxxmapper.xml檔案的編譯結果。

原因:

SpringBoot預設配置情況下,只有resources路徑下的xml檔案會被掃描。

解決辦法:

方法一:【推薦使用】

將mapper對映檔案放在resources目錄下,通常會在resources目錄下建一個mapper目錄,存放各種mapper的對映檔案,

解決Spring boot整合mybatis,xml資原始檔放置及路徑配置問題

並且在application.properties中配置 Mapper對映檔案的路徑為:

#指定myBatis的核心配置檔案與Mapper對映檔案

mybatis.mapper-locations=classpath:mapper/*.xml

測試成功,檢視target目錄下,有xxxMapper.xml檔案的編譯結果。

解決Spring boot整合mybatis,xml資原始檔放置及路徑配置問題

方法二:

mapper對映檔案依舊放在java目錄下,

解決Spring boot整合mybatis,xml資原始檔放置及路徑配置問題

此時,需要在pom.xml檔案中新增java路徑下xml檔案掃描配置,

 <build>
   <resources>
     <resource>
      <filtering>true</filtering>
      <directory>${basedir}/src/main/java</directory>
      <includes>
        <include>**/*.xml</include>
      </includes>
     </resource>
     <resource>
      <directory>${basedir}/src/main/java</directory>
      <excludes>
        <exclude>**/*.xml</exclude>
      </excludes>
     </resource>
   </resources>
</build>

並且在application.properties中配置 Mapper對映檔案的路徑時要加上包名,

#mybatis.mapper-locations=classpath:包名/*.xml

mybatis.mapper-locations=classpath:org.xiao.dao/*.xml

測試成功,檢視target目錄下,有xxxMapper.xml檔案的編譯結果。

解決Spring boot整合mybatis,xml資原始檔放置及路徑配置問題

以上這篇解決Spring boot整合mybatis,xml資原始檔放置及路徑配置問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。