解決Spring boot整合mybatis,xml資源文件放置及路徑配置問題
網(wǎng)上各種解決方案,我試了好久,整合了幾篇文章才湊出來,在這里分享一下,實在不想網(wǎng)友們在這里面繞圈子,畢竟,寫代碼的時間是愉快的,解決bug也是愉快的,但也是一直在bug里面繞圈子就不爽了。
親自試驗:
1) 我的mapper和xml是這樣子放置的
2) 在.xml中namespace是這樣的:
3) application.properties中mybatis.mapper-locations得這么配置到xml
4) 最后呢,你只要在pom.xml中build下這樣配置
5) 按照我這種位置防止,把響應(yīng)的包名換成自己的,就基本上不會沒有什么問題的。
也不用去加什么*Application中去加什么注解@MapperScan(value = "com.acme.shop.mapper")什么的了,不需要呢。
補充知識:mybatis-plus的 mapper.xml 路徑配置的坑
問題:
在SpringBoot整合MyBatis時,若mapper映射文件在java路徑下,就會一直報錯Invalid bound statement (not found): xxx.xxxMapper.selectxx
說明Mapper接口是可以調(diào)用到的,問題就出在無法映射到Mapper.xml文件。
同時查看輸出target目錄下,沒有xxxmapper.xml文件的編譯結(jié)果。
原因:
SpringBoot默認配置情況下,只有resources路徑下的xml文件會被掃描。
解決辦法:
方法一:【推薦使用】
將mapper映射文件放在resources目錄下,通常會在resources目錄下建一個mapper目錄,存放各種mapper的映射文件,
并且在application.properties中配置 Mapper映射文件的路徑為:
#指定myBatis的核心配置文件與Mapper映射文件
mybatis.mapper-locations=classpath:mapper/*.xml
測試成功,查看target目錄下,有xxxMapper.xml文件的編譯結(jié)果。
方法二:
mapper映射文件依舊放在java目錄下,
此時,需要在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文件的編譯結(jié)果。
以上這篇解決Spring boot整合mybatis,xml資源文件放置及路徑配置問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java多線程編程之從線程返回數(shù)據(jù)的兩種方法
從線程中返回數(shù)據(jù)和向線程傳遞數(shù)據(jù)類似。也可以通過類成員以及回調(diào)函數(shù)來返回數(shù)據(jù)。但類成員在返回數(shù)據(jù)和傳遞數(shù)據(jù)時有一些區(qū)別,下面讓我們來看看它們區(qū)別在哪2014-01-01Java接收text/event-stream格式數(shù)據(jù)的詳細代碼
這篇文章主要介紹了java接收text/event-stream格式數(shù)據(jù),本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07Springboot+MybatisPlus+Oracle實現(xiàn)主鍵自增的示例代碼
這篇文章主要介紹了Springboot+MybatisPlus+Oracle實現(xiàn)主鍵自增的示例代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11