Open ghost opened 5 years ago
这种方式,应该不会涉及到使用mapper.xm找不到的问题,你可以看下xml是否被编译到类路径下,我又一次遇到这个问题,在target文件夹里没有xml,导致一直找不到。这种方式比较复杂,后来我在mybatisplus上发现了一个同样是baomidou的开源工具dynamic-datasource,可以更方便的完成数据源切换,地址:https://github.com/baomidou/dynamic-datasource-spring-boot-starter
@z357904947 谢谢回复!,已经解决! `@Bean public SqlSessionFactory sqlSessionFactory() throws Exception { SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dynamicDataSource());
sqlSessionFactoryBean.setTypeAliasesPackage(typeAliasesPackage);
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
//设置sql配置文件路径
**sqlSessionFactoryBean.setMapperLocations(resolver.getResources(mapperLocations));**
return sqlSessionFactoryBean.getObject();
}`
指定mapper的xml文件位置就可以了!
您好! 看了您的代码,给我启发很大,但是在我自己编写时出现了一个问题。 您的代码通过@Select注解时,可以正常运行,我换成xml形式,就提示“org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.demo.sys.mapper.DataSourceMapper.getDataSourceByDbid”。
我可以保证我的xml形式的代码,没有问题,在不使用数据源切换的时候,是可以使用的,但是加上数据源切换,就出现上述报错,不知道您是否遇到过? 谢谢!