解決微服務下Mybatis?xml無效綁定問題及分析Invalid?bound?statement
問題描述
啟動運行項目,調(diào)接口時,走到mapper接口處,
報以下錯誤:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
有的人,可能困擾好幾小時,或者一天以上。
分析
1、檢查 mapper 接口和xml文件的定義的namespace 是否可以正常跳轉。
2、檢查xml返回類型是否正確 ResultMap 還是ResultType。
3、檢查項目的主配置文件的信息(yaml或者poperties):
- 檢查mybatis.mapper-locations屬性配置的路徑下是否可以找到接口對應的xml文件。
4、檢查工程編譯后Target的Classes的文件夾里,對應的xml文件,是否是最新的xml文件內(nèi)容,二者是否一致。
- 其實,大多數(shù)并沒有被編譯到Classes 目錄中。
- maven 要執(zhí)行 mvn clean package 【不一定得行、靜態(tài)文件不一定會加載到target】
- maven 要執(zhí)行 mvn clean install 【得行】 【idea清空緩存、再執(zhí)行此命令】
5、檢查主啟動類的注解的value是否正確。
@MapperScan(value = "com.zy.core.mapper")
6、如果使用了微服務的配置中心,還需要檢查當前的項目是使用的哪個Nacos。
項目的環(huán)境(本地調(diào)試,開發(fā)環(huán)境、測試環(huán)境、生產(chǎn)環(huán)境)不一樣,使用的Nacos配置也不一樣。
- 有自己電腦啟動的nacos;
- 有公司搭建的nacos;
- 有不走nacos的配置中心的,走項目的本地配置;
總之, 要明確當前的項目的配置(如:數(shù)據(jù)庫連接的信息)應該是使用的那個位置(本地的yaml還是本地的Nacos配置中心、其他的Nacos配置中心)。
如果使用了Nacos配置中心,不管是本地的還是其他的,都要登錄Nacos配置中心去檢查下是否存在相應的DataId、group、username、password等信息。
如果存在 ,查看下mybatis.mapper-locations屬性是否與項目里配置的一致。
mybatis: mapper-locations: classpath:com/zy/core/mapper/*Mapper.xml
或者
mybatis-plus: ???????mapper-locations: classpath*:com/zy/core/mapper/mapper/**/**.xml
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- 解決java中mybatis報錯:org.apache.ibatis.binding.BindingException:Invalid bound statement(not found):xx問題
- mybatis整合springboot報BindingException:Invalid?bound?statement?(not?found)異常解決
- 使用mybatis報Invalid bound statement解決分析
- mybatis創(chuàng)建項目報Invalid?bound?statement?(not?found)錯誤解決方法
- SpringBoot使用MyBatis-Plus解決Invalid?bound?statement異常
- 解決mybatis-plus通用mapper調(diào)用報錯:Invalid bound statement
- mybatis Invalid bound statement(not found)排坑記錄
相關文章
Java中實現(xiàn)線程的三種方式及對比_動力節(jié)點Java學院整理
本文給大家分享了java實現(xiàn)線程的三種方式,非常不錯,具有參考借鑒價值,需要的朋友參考下吧2017-05-05Spring實戰(zhàn)之使用XML方式管理聲明式事務操作示例
這篇文章主要介紹了Spring實戰(zhàn)之使用XML方式管理聲明式事務操作,結合實例形式詳細分析了Spring XML方式管理聲明式事務具體步驟、配置、接口及使用技巧,需要的朋友可以參考下2020-01-01使用Java實現(xiàn)簡單搭建內(nèi)網(wǎng)穿透
內(nèi)網(wǎng)穿透是一種網(wǎng)絡技術,適用于需要遠程訪問本地部署服務的場景,本文主要為大家介紹了如何使用Java實現(xiàn)簡單搭建內(nèi)網(wǎng)穿透,感興趣的可以了解下2024-02-02springboot整合webservice使用簡單案例總結
WebService是一個SOA(面向服務的編程)的架構,它是不依賴于語言,平臺等,可以實現(xiàn)不同的語言間的相互調(diào)用,下面這篇文章主要給大家介紹了關于springboot整合webservice使用的相關資料,需要的朋友可以參考下2024-07-07