mybatis-plus配置多数据源出现invalid bound statement not found怎么解决
发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,本篇内容介绍了"mybatis-plus配置多数据源出现invalid bound statement not found怎么解决"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来
千家信息网最后更新 2024年11月20日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安全错误
数据库的锁怎样保障安全
巴基斯坦网络技术发展的特点
1700亿网络安全生态
java 爬网页数据库
如何用数据库做宾馆管理系统
网络服务器的知识
网络安全表态书
mq 服务器
学校网络安全管理应急预案
华为数据库防火墙贵吗
东塔网络安全学院学费多少
水粉网络安全绘画
洪山区海航网络安全维护价目
潍坊直播软件开发企业
软件测试怎么用数据库
软件开发 工作岗位
国企网络安全上市公司
有v300服务器吗
化学常用数据库
网内共享文件服务器
全国dna打拐数据库比对
云文件服务器有多大
数据库dim
甲骨文翻译软件开发
大班幼儿网络安全
廊坊网络技术培训
post获取数据库参数
护苗 网络安全序列课程
服务器硬盘克隆速度
怪物猎人曙光dlc分不分服务器
校园网络安全项目背景