解決多模塊項(xiàng)目中Mybatis的Mapper內(nèi)部方法找不到的問題
程序運(yùn)行過程中出現(xiàn)的問題
我要使用Mybatis插入一條數(shù)據(jù),提示我找不到 insert 方法或者提示找不到其它的方法!
假如你也有和我一樣的問題,找了好久又找不到解決辦法,路徑核對了N遍,Mapper.xml配置文件也都中規(guī)中矩的寫在了工程的resources下,還是有問題,那就靜下心往下看 雖然解決的辦法不一定能幫到你,但是也請?jiān)囈辉嚕?/p>
以下是報(bào)錯(cuò)的截圖
org.apache.ibatis.binding.BindingException:Invalid bound statement (not found): com.miu.mabatistest.mapper.ServerMapper.insert

我的問題出現(xiàn)在Maven多模塊工程上,Mybatis是單獨(dú)一個(gè)模塊用于CRUD操作,被其它模塊調(diào)用!
實(shí)體類,Mapper接口,還有Mapper.xml配置文件都是使用Mybatis的 generator 插件自動生成出來的,路徑我核對了一遍又一遍,網(wǎng)上找了各種解決辦法,毫無頭緒,后來為了測試到底是哪出的問題我在Mapper接口中,自己寫了一個(gè)查詢所有的方法,使用注解的方式!

后來我運(yùn)行程序測試了一下我用注解的方式寫的 findAll方法,一點(diǎn)問題沒有,都查出來了,很奇怪,注解的方式就可以,xml的方式就不行,這就證明了問題就在于我的Mapper.xml配置文件不好使啊,并沒有被加載讀取!
解決方法
在你的application.properties配置文件中,加入mybatis的配置
雖然之前你沒有配置程序依然正常啟動,啟動程序的時(shí)候不報(bào)錯(cuò),是因?yàn)槟悴粚?,程序就干脆不給你加載!
把Mybatis掃描xml的路徑給配上去,就可以了!
這里還有個(gè)小問題就是,如果你是多模塊工程,mybatis也是分離的模塊,那么你的application.properties 文件或者是applicaion.yml文件是不在mybatis模塊中的,基本都在你的啟動類里面配置,那么路徑上就需要寫成 classpath* :你Mapper.xml的位置 這塊可能不好理解,給你貼個(gè)我的結(jié)構(gòu)圖和路徑圖,classpath后面寫個(gè)星,是因?yàn)橐獟呙嫠心K,如果你不寫它只會掃面它自己這一個(gè)模塊!
如果是單一結(jié)構(gòu)的工程,直接寫路徑就完事了,就那么一個(gè)路徑別說你寫不明白!

此圖是我gateway模塊中的application.properties文件的截圖

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Cloud Hystrix 服務(wù)容錯(cuò)保護(hù)的原理實(shí)現(xiàn)
這篇文章主要介紹了Spring Cloud Hystrix 服務(wù)容錯(cuò)保護(hù)的原理實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-05-05
Netty分布式flush方法刷新buffer隊(duì)列源碼剖析
這篇文章主要為大家介紹了Netty分布式flush方法刷新buffer隊(duì)列源碼剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
Java基于Dijkstra算法實(shí)現(xiàn)校園導(dǎo)游程序
這篇文章主要為大家詳細(xì)介紹了Java基于Dijkstra算法實(shí)現(xiàn)校園導(dǎo)游程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Java數(shù)組高級算法與Arrays類常見操作小結(jié)【排序、查找】
這篇文章主要介紹了Java數(shù)組高級算法與Arrays類常見操作,結(jié)合實(shí)例形式總結(jié)分析了Java數(shù)組常見的排序算法、查找算法相關(guān)原理、實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下2019-03-03
Knife4j的請求示例當(dāng)中有很多空白行的問題解決辦法
這篇文章主要介紹了Knife4j的請求示例當(dāng)中有很多空白行的問題解決辦法,按正常來說不應(yīng)該有上方的空白,當(dāng)然如果只是查看我也不至于非要解決他,主要是假如接口是json傳參,調(diào)試界面都沒辦法修改參數(shù),遇到同樣問題的同學(xué)可以參考閱讀本文2024-09-09
springmvc 中dao層和service層的區(qū)別說明
這篇文章主要介紹了springmvc 中dao層和service層的區(qū)別說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08

