目录
-
现象
spring 项目新增加了一个数据源,配置好SqlSessionFactoryBean 、MapperScannerConfigurer后,启动不报错,执行dao方法报Invalid bound statement (not found) 。 -
原因
出现这个问题的原因是dao方法找不到绑定的mapper配置,通俗说就是接口里的方法找不到xml对应的配置。可能是- mapperLocations 配置路径不对。
- 多个数据源的MapperScannerConfigurer扫描了相同的包,因为该配置产生的bean是默认的name,多个数据配置扫描的时候这里只会产生一个绑定的bean,因为两个数据源的xml配置不同,所以会出现该异常。
-
解决
- 配置正确的mapperLocations路径。
- 多个数据的MapperScannerConfigurer扫描路径分开。避免多数据源重复生成dao(mapper) bean。