Invalid bound statement (not found)-Mybatis终极解决方法,真实有效
网上已经有很多文章说明可能导致这个报错的原因,无非是以下几种:
1、不小心在xxxMapper.xml
写了 id="xxxFunctionId"
两个或多个一样的 xxxFunctionId
2、如果 xxxMapperDao.java
的方法返回值是List,而xxxMapper.xml
select元素没有正确配置ResultMap
,或者只配置ResultType
3、看下xxxMapper.xml
的XML配置namespace
路径xxxpackage.xxxMapperDao是否正确
4、xxxMapper.xml
中实现的方法在xxxMapperDao.java中不存在
5、xxxMapperDao.java的@Component("xxxMapperDao") 在全局范围内有重复的
6、.如果你确认没有以上问题,请任意修改下对应的xml文件,比如添加/删除一个空行,保存.问题解决
7、在git/svn的本地/服务器仓库里查看一下xml里的最新变动,是不是不小心输入混进了什么特殊字符到xxxMapper.xml
中方法体标签意外的地方了。
如果全部检查了一遍,还发现没有问题,最好看下自己的配置文件,那时候很有可能是配置少了扫描mapper的东西:
在创建
SqlSessionFactory
的时候,加了以下配置:
sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml")); sqlSessionFactoryBean.setTypeAliasesPackage("com.test.maper");
而且注意sqlSessionFactoryBean.setTypeAliasesPackage
参数不支持通配符*,如果有多个包可以通过","等分割如果需要加载依赖传递过来的
jar
包中的mapper
目录下的xml,classpath:mapper/*.xml
修改为``classpath:mapper/.xml`
本文作者:Journey&Flower
本文链接:https://www.cnblogs.com/JourneyOfFlower/p/16464163.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步