springboot报错invalid bound statement (not found)

springboot 整合 mybatis 时报错...

错误代码:

Invalid bound statement (not found): com.yun.mapper.UserMapper.getUsers

仔细检查过mapper接口,mapper.xml。语法上似乎没有什么问题...

做出尝试:
1.尝试注解写法,执行成功。
因为我把XXXmapper.xml文件放到resources/static/mapper文件下,所以是不是配置文件出了问题呢?
2.尝试把mapper接口和XXXmapper.xml文件放到一个文件夹中执行,也成功。
配置文件中是这么写的:

mybatis:
  # 配置mapper.xml文件路径 
  mapper-locations: classpath:mapper/*.xml

应该是路径配置的不对。
看项目的target目录,猜测classpath指的是\target\classes这个文件夹,中间还有\static这一层目录。
上网搜一下springboot的classpath到底指的啥?
人家给出的总结:classpath 等价于 main/java + main/resources + 第三方jar包的根目录
这是未编译前的,编译后把这些文件夹都放到了\target\classes目录下了。
得出结论=>classpath其实指向的是target目录下的classes文件夹。
3.修改配置文件,这次成功了。

mybatis:
  mapper-locations: classpath:mapper/*.xml

修改为

mybatis:
  mapper-locations: classpath:static/mapper/*.xml

备注:
Invalid bound statement 这个错出现的原因有很多,这个错误出现的原因是mybatis没有指向正确的存放mapper.xml配置文件的路径。本文中可能有理解上的错误,希望看者指出错误,帮助改正,谢谢~

上一篇:Matlab无法解析名称weka.core.converters.ArffLoader或修改classpath.txt文件时拒绝访问


下一篇:清华操作系统实验ucore_lab3