中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mybatis-plus配置多數據源出現invalid bound statement not found怎么解決

發布時間:2021-06-24 12:02:22 來源:億速云 閱讀:1859 作者:chen 欄目:大數據

本篇內容介紹了“mybatis-plus配置多數據源出現invalid bound statement not found怎么解決”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

一、 環境

  1. 版本號

    <dependency>
         <groupId>com.baomidou</groupId>
         <artifactId>mybatis-plus-boot-starter</artifactId>
         <version>3.2.0</version>
    </dependency>


  2. 沒有使用myabtis-plus的多數據源依賴

    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
        <version>2.5.7</version>
    </dependency>


二、 多數據源配置

  1. 啟動類配置

    @MapperScans({
            @MapperScan(basePackages = {"com.aaa.dao"}, sqlSessionFactoryRef = DatasourceConf.SESSION_FACTORY),
            @MapperScan(basePackages = {"com.bbb.dao"}, sqlSessionFactoryRef = OtherDatasourceConf.OTHER_SESSION_FACTORY)
    })


  2. 配置類

    @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();
        }
    }


    另一個數據源配置

    @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的內置函數就會報invalid bound statement (not found)異常。

四、 解決

  1. 查看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();
        }
    }


  2. SqlSessionFactoryBean修改成myabtis-plus自定義的MybatisSqlSessionFactoryBean解決

  3. 注意mybatis-plus的配置需要使用MybatisPlusProperties而不是MybatisProperties

  4. 當配置類多個DataSourceMybatisPlusAutoConfiguration類就不再生效,需要手動配置

“mybatis-plus配置多數據源出現invalid bound statement not found怎么解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

呼图壁县| 木里| 阜南县| 威信县| 荃湾区| 原阳县| 内丘县| 剑河县| 庆安县| 叶城县| 漠河县| 荆门市| 泸水县| 莫力| 富锦市| 赣州市| 江口县| 永和县| 天长市| 溧阳市| 土默特右旗| 教育| 徐水县| 乡宁县| 海兴县| 临夏市| 城市| 南川市| 赣榆县| 喀喇沁旗| 德江县| 林西县| 石渠县| 贡山| 禹州市| 和田县| 井冈山市| 博客| 嫩江县| 齐河县| 浠水县|