MyBatis报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

今天遇到一个问题,代码写完之后,运行的时候网页报错:

WhitelabelError Page

Thisapplication has no explicit mapping for /error, so you are seeing this as afallback.

Thu Jul 27 19:22:24 CST 2017

There was an unexpected error (type=Internal Server Error,status=500).

Invalid bound statement (not found):com.LilyDianer.FastNews.dao.NewsDAO.selectByUserIdAndOffset


服务器给我报的错是:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.LilyDianer.FastNews.dao.NewsDAO.selectByUserIdAndOffset
at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:214) ~[mybatis-3.4.0.jar:3.4.0]
at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:48) ~[mybatis-3.4.0.jar:3.4.0]
at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:59) ~[mybatis-3.4.0.jar:3.4.0]
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:52) ~[mybatis-3.4.0.jar:3.4.0]
at com.sun.proxy.$Proxy56.selectByUserIdAndOffset(Unknown Source) ~[na:na]
at com.LilyDianer.FastNews.service.NewsService.getLatestNews(NewsService.java:23) ~[classes/:na]
at com.LilyDianer.FastNews.controller.HomeController.getNews(HomeController.java:29) ~[classes/:na]
at com.LilyDianer.FastNews.controller.HomeController.index(HomeController.java:43) ~[classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_77]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_77]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_77]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_77]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) ~[spring-web-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) ~[spring-web-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110) ~[spring-webmvc-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:832) ~[spring-webmvc-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:743) ~[spring-webmvc-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) ~[spring-webmvc-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:961) ~[spring-webmvc-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:895) ~[spring-webmvc-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:967) ~[spring-webmvc-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:858) ~[spring-webmvc-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) ~[tomcat-embed-core-8.0.33.jar:8.0.33]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:843) ~[spring-webmvc-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) ~[tomcat-embed-core-8.0.33.jar:8.0.33]



然后我就很仔细的看了代码,真的真的是没有问题啊,代码这么简单,真的不可能是我写的问题。
然后就到处百度:

http://blog.csdn.net/zgmzyr/article/details/8044980

http://bbs.csdn.net/topics/390501284

http://blog.csdn.net/u010504064/article/details/47337307

http://www.cnblogs.com/softidea/p/6053980.html

方法都看了,试了,还是不对。


然后我看到了这篇 【http://www.cnblogs.com/jstarseven/p/5803697.html】

因为我也是刚换的IDEA,所以我觉得他说的很有道理,于是我就回去检查我的发布文件:


可以看到,我的xml文件的位置并没有如我所愿的放到com下的dao包里,所以mybatis是无法扫描到这个xml,因此就会报方法找不到的错。


解决方法:我在resource包下新建了一个与DAO类包同名的包,然后把xml文件放进去:


得到的发布目录应该是这个样子的:



然后我再运行,就正确了。

哎,这个IDEA真的是坑爹,

开始我是直接把xml文件放到DAO类的包下的,直接不识别。

然后我百度了一下,觉得应该是要放到resource包下的,但是因为在resource上new的时候没有找到Pakage,就选了一个Directory来替代,图标也挺像的,呵呵,然后就是几个小时找不出来到底是哪里错......

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值