最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot +MybatisPlus集成多數(shù)據(jù)源的使用案例

 更新時間:2025年05月23日 10:31:15   作者:小徐Chao努力  
這篇文章主要介紹了SpringBoot +MybatisPlus集成多數(shù)據(jù)源的使用案例,本文分步驟結(jié)合實例代碼給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

引言

應(yīng)項目需求,需要引入另外的Mysql數(shù)據(jù)庫,但是項目已經(jīng)引入一個Mysql,這時有幾種方案

  • 通過Dynamic-DataSource 框架,無縫集成 但是是動態(tài)切換數(shù)據(jù)源的,跟項目需求不符合,于是采取第二種
  • 通過自定義數(shù)據(jù)源配置類,無縫引入多個數(shù)據(jù)源,并且基于文件目錄隔離

步驟

引入依賴

項目需要引入了MyBatis Plus即可,無需引入額外依賴

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

修改配置文件

spring:
  datasource:
    d1:
      password: xxxx
      username: xxxx
      jdbc-url: jdbc:mysql://xxxx:3306/ecshop_wp?characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
      driver-class-name: com.mysql.cj.jdbc.Driver
    d2:
      password: root
      username: root
      jdbc-url: jdbc:mysql://127.0.0.1:3306/xg_bi_lcc?characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
      driver-class-name: com.mysql.cj.jdbc.Driver

添加配置類

@Configuration
@MapperScan(basePackages = "xg.xx.model.front.service.mysql.mapper1", sqlSessionFactoryRef = "d1SqlSessionFactory")
public class EcshopWpDataSourceConfig {
    @Bean(name = "d1DataSource")
    @ConfigurationProperties(prefix = "spring.datasource.d1")
    public DataSource ecshopWpDataSource() {
        return DataSourceBuilder.create().build();
    }
    @Bean(name = "d1SqlSessionFactory")
    public SqlSessionFactory ecshopWpSqlSessionFactory(@Qualifier("d1DataSource") DataSource dataSource) throws Exception {
        MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
        //configuration配置bean
        //MybatisConfiguration configuration = new MybatisConfiguration();
        //configuration.setMapUnderscoreToCamelCase(true);
        //configuration.setCacheEnabled(false);
        // 配置打印sql語句s
        //configuration.setLogImpl(StdOutImpl.class);
        // 添加自定義SQL注入
        //bean.setConfiguration(configuration);
        //插件對象
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        //動態(tài)表名
        //DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor = new DynamicTableNameInnerInterceptor();
        //可以傳多個表名參數(shù),指定哪些表使用MonthTableNameHandler處理表名稱
        //dynamicTableNameInnerInterceptor.setTableNameHandler(new MonthTableNameHandler("t_table_name"));
        //以攔截器的方式處理表名稱
        //可以傳遞多個攔截器,即:可以傳遞多個表名處理器TableNameHandler
        //mybatisPlusInterceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor);
        //分頁插件
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        bean.setDataSource(dataSource);
        // 設(shè)置mybatis的xml所在位置
        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mybatis/d1/*.xml"));
        bean.setPlugins(mybatisPlusInterceptor);
        return bean.getObject();
    }
    @Bean(name = "d1TransactionManager")
    public DataSourceTransactionManager ecshopWpTransactionManager(@Qualifier("d1DataSource") DataSource dataSource) {
        return new DataSourceTransactionManager(dataSource);
    }
}
@Configuration
@MapperScan(basePackages = "xg.xx.model.front.service.mysql.Mapper2", sqlSessionFactoryRef = "d2SqlSessionFactory")
public class XgBiLccDataSourceConfig {
    @Bean(name = "d2DataSource")
    @ConfigurationProperties(prefix = "spring.datasource.d2")
    public DataSource ecshopWpDataSource() {
        return DataSourceBuilder.create().build();
    }
    @Bean(name = "d2SqlSessionFactory")
    public SqlSessionFactory ecshopWpSqlSessionFactory(@Qualifier("d2DataSource") DataSource dataSource) throws Exception {
        MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
        //configuration配置bean
        //MybatisConfiguration configuration = new MybatisConfiguration();
        //configuration.setMapUnderscoreToCamelCase(true);
        //configuration.setCacheEnabled(false);
        // 配置打印sql語句s
        //configuration.setLogImpl(StdOutImpl.class);
        // 添加自定義SQL注入
        //bean.setConfiguration(configuration);
        //插件對象
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        //動態(tài)表名
        //DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor = new DynamicTableNameInnerInterceptor();
        //可以傳多個表名參數(shù),指定哪些表使用MonthTableNameHandler處理表名稱
        //dynamicTableNameInnerInterceptor.setTableNameHandler(new MonthTableNameHandler("t_table_name"));
        //以攔截器的方式處理表名稱
        //可以傳遞多個攔截器,即:可以傳遞多個表名處理器TableNameHandler
        //mybatisPlusInterceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor);
        //分頁插件
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        bean.setDataSource(dataSource);
        // 設(shè)置mybatis的xml所在位置
        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mybatis/d2/*.xml"));
        bean.setPlugins(mybatisPlusInterceptor);
        return bean.getObject();
    }
    @Bean(name = "d2TransactionManager")
    public DataSourceTransactionManager ecshopWpTransactionManager(@Qualifier("d2DataSource") DataSource dataSource) {
        return new DataSourceTransactionManager(dataSource);
    }
}

使用案例

@Transactional

@Transactional(value = "d2TransactionManager", rollbackFor = Exception.class)
這樣即可進行全局事物管理

到此這篇關(guān)于SpringBoot +MybatisPlus集成多數(shù)據(jù)源的文章就介紹到這了,更多相關(guān)SpringBoot MybatisPlus多數(shù)據(jù)源內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Intellij Idea中批量導(dǎo)入第三方j(luò)ar包的全過程

    Intellij Idea中批量導(dǎo)入第三方j(luò)ar包的全過程

    引入jar包一般都是針對小的java項目,這篇文章主要給大家介紹了關(guān)于Intellij Idea中批量導(dǎo)入第三方j(luò)ar包的相關(guān)資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2021-10-10
  • 九個動畫組圖輪播總結(jié)全棧數(shù)據(jù)結(jié)構(gòu)數(shù)組鏈表

    九個動畫組圖輪播總結(jié)全棧數(shù)據(jù)結(jié)構(gòu)數(shù)組鏈表

    數(shù)據(jù)結(jié)構(gòu)和算法是密不可分的,兩者往往是相輔相成的存在,所以在學習數(shù)據(jù)結(jié)構(gòu)過程中,不免會遇到各種算法,數(shù)據(jù)結(jié)構(gòu)常用操作一般為:增刪改查。基本上所有的數(shù)據(jù)結(jié)構(gòu)都是圍繞這幾個操作進行展開,本文用九張動圖來闡述先進后出的數(shù)據(jù)結(jié)構(gòu)
    2021-08-08
  • Spring中自定義Schema如何解析生效詳解

    Spring中自定義Schema如何解析生效詳解

    Spring2.5在2.0的基于Schema的Bean配置的基礎(chǔ)之上,再增加了擴展XML配置的機制。通過該機制,我們可以編寫自己的Schema,并根據(jù)自定義的Schema用自定的標簽配置Bean,下面這篇文章主要介紹了關(guān)于Spring中自定義Schema如何解析生效的相關(guān)資料,需要的朋友可以參考下
    2018-07-07
  • 基于SpringBoot+SpringAI+Ollama開發(fā)智能問答系統(tǒng)

    基于SpringBoot+SpringAI+Ollama開發(fā)智能問答系統(tǒng)

    在人工智能技術(shù)飛速發(fā)展的今天,大語言模型(LLM)已成為開發(fā)者工具箱中不可或缺的一部分,本文將介紹如何利用SpringBoot、SpringAI框架結(jié)合Ollama本地大模型服務(wù),搭建一個完全運行在本地Windows環(huán)境下的智能問答系統(tǒng),有需要的可以了解下
    2025-06-06
  • centos下GitLab+Jenkins持續(xù)集成環(huán)境搭建(安裝jenkins)

    centos下GitLab+Jenkins持續(xù)集成環(huán)境搭建(安裝jenkins)

    這篇文章主要為大家詳細介紹了centos下搭建GitLab+Jenkins持續(xù)集成環(huán)境,安裝jenkins的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • springmvc之獲取參數(shù)的方法(必看)

    springmvc之獲取參數(shù)的方法(必看)

    下面小編就為大家?guī)硪黄猻pringmvc之獲取參數(shù)的方法(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Java代碼性能測試實戰(zhàn)之ContiPerf安裝使用

    Java代碼性能測試實戰(zhàn)之ContiPerf安裝使用

    這篇文章主要為大家介紹了Java代碼性能測試實戰(zhàn)之ContiPerf安裝使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • JAVA spark創(chuàng)建DataFrame的方法

    JAVA spark創(chuàng)建DataFrame的方法

    這篇文章主要介紹了JAVA spark創(chuàng)建DataFrame的方法,幫助大家更好的理解和學習spark,感興趣的朋友可以了解下
    2020-08-08
  • IDEA 2020 2全家桶安裝激活超詳細圖文教程

    IDEA 2020 2全家桶安裝激活超詳細圖文教程

    這篇文章主要介紹了IDEA-2020-2 全家桶安裝激活超詳細教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • java實現(xiàn)單詞小游戲

    java實現(xiàn)單詞小游戲

    這篇文章主要為大家詳細介紹了java實現(xiàn)單詞小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-02-02

最新評論

宁远县| 河池市| 固始县| 辽阳县| 昭觉县| 合阳县| 尖扎县| 乌拉特后旗| 沈丘县| 合山市| 岳阳市| 马山县| 襄城县| 闽清县| 依兰县| 壶关县| 道真| 子洲县| 呼伦贝尔市| 县级市| 永和县| 昌江| 平果县| 临沂市| 敖汉旗| 琼结县| 阳信县| 慈溪市| 喀喇| 淮阳县| 平定县| 祥云县| 洞头县| 腾冲县| 依安县| 昭觉县| 牙克石市| 扎囊县| 呼和浩特市| 四川省| 青海省|