1.说明:
原本项目采用springboot+mybatisplus单数据源,后需求更改需再接入一个数据源,然后使用公用的BaseMapper无法使用报错:也就是无法找到sql
Invalid bound statement (not found)
解决方式:只需要在你配置数据源的地方,换一个类即可:
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
更改为:
MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean();
即可。
@Bean(name = "commonSqlSessionFactory")
@Primary
public SqlSessionFactory commonSqlSessionFactory(@Qualifier("commonDataSource") DataSource commonDataSource)throws Exception {
//DefaultVFS在获取jar上存在问题,使用springboot只能修改 ,否则setTypeAliasesPackage 在生产环境报错
VFS.addImplClass(SpringBootVFS.class);
// final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean();
sessionFactory.setDataSource(commonDataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(DataSourceConfig.MAPPER_LOCATION));
sessionFactory.setTypeAliasesPackage(TYPE_ALIASES_PACKAGE);
return sessionFactory.getObject();
}
感谢大佬分享,在此记录一下。
原文链接:https://blog.csdn.net/xingsfdz/article/details/107980229