mybatis-plus配置多数据源出现invalid bound statement not found怎么解决
发表于:2025-02-09 作者:千家信息网编辑
千家信息网最后更新 2025年02月09日,本篇内容介绍了"mybatis-plus配置多数据源出现invalid bound statement not found怎么解决"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来
千家信息网最后更新 2025年02月09日mybatis-plus配置多数据源出现invalid bound statement not found怎么解决
本篇内容介绍了"mybatis-plus配置多数据源出现invalid bound statement not found怎么解决"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
一、 环境
版本号
com.baomidou mybatis-plus-boot-starter 3.2.0 没有使用
myabtis-plus
的多数据源依赖com.baomidou dynamic-datasource-spring-boot-starter 2.5.7
二、 多数据源配置
启动类配置
@MapperScans({ @MapperScan(basePackages = {"com.aaa.dao"}, sqlSessionFactoryRef = DatasourceConf.SESSION_FACTORY), @MapperScan(basePackages = {"com.bbb.dao"}, sqlSessionFactoryRef = OtherDatasourceConf.OTHER_SESSION_FACTORY)})
配置类
@Configurationpublic class DatasourceConf { public static final String SESSION_FACTORY = "SessionFactory"; @Primary @Bean(name = SESSION_FACTORY) public SqlSessionFactory dianOrderSessionFactory(MybatisProperties properties) throws Exception { SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(secondDatasource()); //... } @Primary @Bean public DataSource secondDatasource() { return new HikariDataSource(secondHikariConfig()); } @Bean @ConfigurationProperties(prefix = "spring.datasource.aaa.hikari") public HikariConfig secondHikariConfig() { return new HikariConfig(); }}
另一个数据源配置
@Configurationpublic class OtherDatasourceConf { public static final String OTHER_SESSION_FACTORY = "otherSessionFactory"; @Bean(name = OTHER_SESSION_FACTORY) public SqlSessionFactory otherSessionFactory(MybatisProperties properties) throws Exception { SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(otherDataSource()); //.... } @Bean public DataSource otherDataSource() { return new HikariDataSource(otherHikariConfig()); } @Bean @ConfigurationProperties(prefix = "spring.datasource.hikari") public HikariConfig otherHikariConfig() { return new HikariConfig(); }}
三、异常
在mapper.xml
中配置了sql
的都没问题,但是使用mybatis-plus
的内置函数就会报invalid bound statement (not found)
异常。
四、 解决
查看
MybatisPlusAutoConfiguration
类@Configuration@ConditionalOnClass({SqlSessionFactory.class, SqlSessionFactoryBean.class})@ConditionalOnSingleCandidate(DataSource.class)@EnableConfigurationProperties(MybatisPlusProperties.class)@AutoConfigureAfter(DataSourceAutoConfiguration.class)public class MybatisPlusAutoConfiguration implements InitializingBean { @Bean @ConditionalOnMissingBean public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception { // TODO 使用 MybatisSqlSessionFactoryBean 而不是 SqlSessionFactoryBean MybatisSqlSessionFactoryBean factory = new MybatisSqlSessionFactoryBean(); factory.setDataSource(dataSource); ... return factory.getObject(); }}
将
SqlSessionFactoryBean
修改成myabtis-plus
自定义的MybatisSqlSessionFactoryBean
解决注意
mybatis-plus
的配置需要使用MybatisPlusProperties
而不是MybatisProperties
当配置类多个
DataSource
,MybatisPlusAutoConfiguration
类就不再生效,需要手动配置
"mybatis-plus配置多数据源出现invalid bound statement not found怎么解决"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
配置
数据
数据源
内容
更多
知识
实用
学有所成
接下来
函数
困境
多个
实际
情况
手动
文章
案例
版本
环境
编带
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
web软件开发中文版
国家网络安全一级
阿里云服务器杀毒软件
软件开发大专就业方向
怎么调整服务器网络架构
网络安全55条法律
网络安全漏洞载体
怎么查邮箱的服务器
linux跳板服务器搭建方案
苏州 服务器
曲靖竹马之友互联网科技公司
编写一本网络安全方面的书
大兴区信息网络技术服务哪家好
数据库系统连接电脑
互联网产业金融科技股
温州戴尔服务器诚信合作
网络技术mac地址
数据库评价是什么
深圳华讯网络技术有限公司
服务器提示网络问题
福州钜大网络技术有限公司
黄浦区网络软件开发服务收费
税控盘ukey访问数据库有误
湖北交投OA服务器地址端口
面临网络安全威胁应如何防范
网络安全的访问控制性
网络安全判几年
北京游戏服务器价格
java课程设计数据库管理系统
虚拟资源服务器网站