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`

转载:https://www.cnblogs.com/tv151579/p/11565509.html

posted @ 2022-07-10 21:43  Journey&Flower  阅读(111)  评论(0编辑  收藏  举报