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