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`

浙公网安备 33010602011771号