Spring Boot項目提示Invalid bound statement (not found)


相信這個問題,網上有很多類似的問題,不外乎是mapper.xml的文件沒有映射到namespace的接口,或者接口名沒有和SQL的id相同等等。

但今天遇到了一個特別的坑,費了很長時間,這里特地說一下。

在排除了所有的問題后,最后無意中發現了是spring boot的啟動配置文件問題,我是用的yml文件的方式,這里有個特別要注意的地方。

這里先介紹下,yml的配置和一般的properties不同。

properties配置方式,如下:

mybatis.configuration.default-statement-timeout=25000 mybatis.mapper-locations=classpath:mapping/*.xml

yml配置方式,如下:

mybatis:
  configuration:
    map-underscore-to-camel-case: true
  mapper-locations: mybatis/**/*Mapper.xml //這里有一定要和configuration保持平級

可以看出yml采用樹形結構,更加簡潔,但更容易出錯,

因為不加分號,所以層次結構,必須得規規整整,我就是因為將mapper-location和 map-underscore-to-camel-case: true保持平級,成為了configuration的子節點。

所以實際上的配置是 mybatis.configuration.mapper-locations: mybatis/**/*Mapper.xml,自然是配置出現了問題。

而 mapper-locations是應該屬於mybatis節點的,這才踩了一個非常容易出現錯的地方,一定要牢記。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM