本篇內容介紹了“mybatis-plus配置多數(shù)據源出現(xiàn)invalid bound statement not found怎么解決”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
創(chuàng)新互聯(lián)建站主要從事網站設計、做網站、網頁設計、企業(yè)做網站、公司建網站等業(yè)務。立足成都服務嵐縣,十年網站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575
版本號
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.2.0</version> </dependency>
沒有使用myabtis-plus
的多數(shù)據源依賴
<dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> <version>2.5.7</version> </dependency>
啟動類配置
@MapperScans({ @MapperScan(basePackages = {"com.aaa.dao"}, sqlSessionFactoryRef = DatasourceConf.SESSION_FACTORY), @MapperScan(basePackages = {"com.bbb.dao"}, sqlSessionFactoryRef = OtherDatasourceConf.OTHER_SESSION_FACTORY) })
配置類
@Configuration public 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(); } }
另一個數(shù)據源配置
@Configuration public 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
的內置函數(shù)就會報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配置多數(shù)據源出現(xiàn)invalid bound statement not found怎么解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網站,小編將為大家輸出更多高質量的實用文章!
文章名稱:mybatis-plus配置多數(shù)據源出現(xiàn)invalidboundstatementnotfound怎么解決
網站路徑:http://chinadenli.net/article16/gdoegg.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站制作、全網營銷推廣、App開發(fā)、網站營銷、移動網站建設、網站建設
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)