解决的思路一般是:
- 检查xml文件所在的package名称是否和interface对应的package名称一一对应
- 检查xml文件的namespace是否和xml文件的package名称一一对应
- 检查函数名称能否对应上
- 去掉xml文件中的中文注释
- 随意在xml文件中加一个空格或者空行然后保存
(博主使用Idea)
一般来说无非就是以上几种解决方案,但是博主我使用以上几种方法后依旧报错
经过检查 我发现xml文件在发布时不会编译,不会发布到target中 导致项目运行时找不到mapper.xml文件
解决方法:application-dao配置文件中添加如图代码对mapper文件进行扫描,问题解决
<property name="mapperLocations" value="classpath*:dao/*Mapper.xml" />
总结:
(1)eclipse、myeclipse、idea针对项目的文件处理方式不一样。
eclipse和myeclipse中mapper.java和mapper.xml在同一目录下,直接配置扫描不会出现上述问题。
(2)注意xml文件的准确性。
最后附上博主的项目结构图