springboot 创建多数据源invalid bound statement (not found)

本文详细解析了在SpringBoot项目中遇到的MyBatis配置错误,包括YAML格式验证、资源路径配置、多数据源Mapper位置指定及ClassNotFound异常解决方法,通过实例代码演示如何正确设置SqlSessionFactory。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

遇到错误问题

         1.如果是yml文件配置,首先第一检查格式是否正确  推荐 http://www.bejson.com/validators/yaml_editor/  检查 

         2.放到 src/main/java 下在pom.xml加以下

       

 <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>

            </resource>
        </resources>

         

 

 

3.invalid bound statement (not found)报错问题    检查 resources 下的mapeer文件夹名称是否和src/mian/java 文件夹下的mapper 或dao层文件名一直(这个我的不一致就不好使);然后就是参照这篇博客https://blog.youkuaiyun.com/Z__Sheng/article/details/93485347    在DataSourceConfig 文件夹里查找错误


标注的这个代码在我们使用多数据的时候,因为关闭了springboot的默认数据源配置,使用我们自己定义的数据源,此时我们在配置文件中配置的路径是不会生效的,需要我们在定义数据源代码的时候,手动指向一下mapper.xml的位置(这个是坑)注意!!!!

其次就是 mapeer层 没有加@Mapper注解  差不多就这几个问题  

 

补充   在配置mapper-locations多数据源可能会出现java.lang.ClassNotFoundException: Cannot find class: xxx 这个错误

解决办法  

@Autowired
private Environment env;
@Bean(name = "masterSqlSessionFactory")
@Primary
public SqlSessionFactory masterSqlSessionFactory(@Qualifier("masterDataSource") DataSource dataSource) throws Exception {
    SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
    sqlSessionFactoryBean.setDataSource(dataSource);
    sqlSessionFactoryBean.setMapperLocations(new    PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));
    sqlSessionFactoryBean.setVfs(SpringBootVFS.class);
    sqlSessionFactoryBean.setTypeAliasesPackage(env.getProperty("mybatis.type-aliases-package"));
    return sqlSessionFactoryBean.getObject();
}

 

主要加 这俩

sqlSessionFactoryBean.setVfs(SpringBootVFS.class); sqlSessionFactoryBean.setTypeAliasesPackage(env.getProperty("mybatis.type-aliases-package"));

详情见

https://juejin.im/post/5bfb607f6fb9a04a08215920

 

demo

https://github.com/wangshanghello/springbootDualdataSou

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值