使用spring整合mybatis做数据查询时报错,实在找不到啥原因了。。
朋友,请注意你的报错信息“java.lang.NoSuchMethodException”,大概的意思是找不到这样的方法,概括来说出现的原因是:
1)实体类没有构造方法;
2)实体类有参构造方法,但没有无参构造方法;
3)xml中namespace写错了
4)以上3点都没问题的话,建议清理一下IDEA缓存,invalidate Caches/Restart。
注意:如果自己找不到问题原因的话,可以将你的xml文件贴出来供分析排查;
不知道是什么原因,我删了整个文件,重新导一遍就可以了,什么都没有改动。。。太奇葩了
很明显你写错了,第一张图你getBean里面写的应该是他的实现类呀不是接口,所以studentService改成studentServiceImpl
楼上+1,你那个dao是不是类,类的话给个无参构造器
上一次看到这个错误是有人把resultType写成了mapper接口类,然后初始化接口肯定GG,然后你这代码给的还很完美的避过了核心区域
studentDao有问题,1,是否加了@Repository注解,
2,mybatis配置对不对?mapper-locations: classpath:mapper/*.xml
3,xml文件写错了,能否对应上studentDao
从你的日志信息来看,配置应该都没错,应该是你SQL语句的XML配置出现了问题。检查一下你的select标签的resultType属性。写成全限定类名试一下。如果不行,就改成resultMap,自己写一个与Student类对应的ResultMap。
insert 不会报错的原因,是因为insert、delete、update标签,返回值是一个int类型,也就是影响行数。而select标签返回值类型需要自己指定。
出现问题,要先看日志,大致判断出,错误出现在那一行,进行debug调试,断点打在出错行附近,进行进一步分析,最终找到错误原因