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配置文件的路径。本文中可能有理解上的错误,希望看者指出错误,帮助改正,谢谢~