Spring Boot项目提示Invalid bound statement (n…

2018-10-23 03:05:31来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

相信这个问题,网上有很多类似的问题,不外乎是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节点的,这才踩了一个非常容易出现错的地方,一定要牢记。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:java的多态性

下一篇:阅读笔记:基础知识(Java篇)