本文由黑壳博客转载
本文转载 SpringBoot 多数据源提示 Invalid bound statement (not found)
壳叔搞笑时间
正文
近日闲来无事,想在网上找个轮子,可以根据数据库生成一部分通用代码,后来因为一些项目数据源场景因素,网上的大多的都是在配置文件写数据源参考,不适合多个数据源。
今天就不写 Springboot 动态数据源一些代码了,直接总结问题。
我昨天参考的是这篇文章 Spring Boot 配置动态数据源访问 N 个数据库,支持数据库动态增删,数量不限,也是一篇转载的文章。
这篇数据库访问的数据访问层采用的是 mybatis 注解方式写的,所以并没有指定 mapperLocations 等配置信息,所以并不是文章提供的代码有问题,而是我的项目框架 mapper 是采用 xml,是需要指定一下 mapperLocations 信息。
废话到此结束...
1、在数据源配置管理类代码页面(DataSourceConfig.java) 指定 mapper 路径
/**
* 创建会话工厂。
* @param baseDataSource 数据源
* @return 会话工厂
*/
@Bean("sqlSessionFactory")
@Primary
public SqlSessionFactory getSqlSessionFactory(@Qualifier("dataSource") DataSource baseDataSource) {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(baseDataSource);
try {
//指定mapper路径
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/**/*.xml"));
} catch (IOException e1) {
e1.printStackTrace();
}
SqlSessionFactory sqlSessionFactory = null;
try {
sqlSessionFactory = bean.getObject();
} catch (Exception e) {
e.printStackTrace();
}
return sqlSessionFactory;
}
完成上述步骤,restart 重启,走一遍操作,完美~
小总结
首先理解报错问题,然后上网找到匹配的解决方案~
对症下药嘛, 问题完美解决~
最后截图两张工具 demo 页面,如果各位喜欢,我晚点等完成了会放到 GitHub 开源供各位 git clone~
参考页面
关于我们
程序员是个辛苦的职业
请善待你们身边的每一位程序员~
欢迎在评论写下你的程序员趣事,程序员不是一个死板的职业~~
欢迎扫描二维码加入我们的小组织 ,大家都叫我壳叔,很期待你的到来。
黑壳网交流群 Q 群:200408242
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于