如果之前网上的方法都没有解决你的问题,请在资源管理器中,项目目录检查项目文件名!
学习记录:
SSM框架学习,IDEA
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.amoxu.mapper.UserMapper.selectByExample
at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:223)at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:48)
at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:59)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:52)
at com.sun.proxy.$Proxy15.selectByExample(Unknown Source)
at com.amoxu.service.impl.UserServiceImpl.findByName(UserServiceImpl.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)vocation.java:190)
...............................
然后后面好多好多异常就不贴了,问题就是找不到mapper文件,按照网上的思路改pom,改文件都不能解决。
在修改spring文件的时候还有一个关键点就是com.xxx.mapper.*,com.xxx.service.* 在IDEA里面都是报红的。
问题发现:
在maven编译生成,项目启动一切都是OK的 但是运行时进行数据的访问就出错,其实就是mapper文件没有打包,然后查了mapper文件(mybatis自动生成),一切都是存在切没有问题的,但是打包的时候target/classes文件夹下的目录就不对了。有一个com文件夹,还有一个com.xxx的文件夹,问题就出在这!mapper文件打包到了com.xxx下了, 其余的文件到com下。
解决问题:
于是我们怀疑是项目路径有问题,于是在PROJECT stracture改了一通还是依旧存在,然后在项目名上Show in Explorer,进入发现java文件夹下的项目文件名是com.amoxu,是的问题就在这,修改文件名为com,在com下新建一个amoxu文件下,把其余的文件拖进去,OK,两天的问题解决了!
思考:
产生com.amoxu文件夹的原因可能是创建module时创建出错了。