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

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

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

引言

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

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

步驟

引入依賴

項(xiàng)目需要引入了MyBatis Plus即可,無(wú)需引入額外依賴

<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語(yǔ)句s
        //configuration.setLogImpl(StdOutImpl.class);
        // 添加自定義SQL注入
        //bean.setConfiguration(configuration);
        //插件對(duì)象
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        //動(dòng)態(tài)表名
        //DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor = new DynamicTableNameInnerInterceptor();
        //可以傳多個(gè)表名參數(shù),指定哪些表使用MonthTableNameHandler處理表名稱
        //dynamicTableNameInnerInterceptor.setTableNameHandler(new MonthTableNameHandler("t_table_name"));
        //以攔截器的方式處理表名稱
        //可以傳遞多個(gè)攔截器,即:可以傳遞多個(gè)表名處理器TableNameHandler
        //mybatisPlusInterceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor);
        //分頁(yè)插件
        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語(yǔ)句s
        //configuration.setLogImpl(StdOutImpl.class);
        // 添加自定義SQL注入
        //bean.setConfiguration(configuration);
        //插件對(duì)象
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        //動(dòng)態(tài)表名
        //DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor = new DynamicTableNameInnerInterceptor();
        //可以傳多個(gè)表名參數(shù),指定哪些表使用MonthTableNameHandler處理表名稱
        //dynamicTableNameInnerInterceptor.setTableNameHandler(new MonthTableNameHandler("t_table_name"));
        //以攔截器的方式處理表名稱
        //可以傳遞多個(gè)攔截器,即:可以傳遞多個(gè)表名處理器TableNameHandler
        //mybatisPlusInterceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor);
        //分頁(yè)插件
        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)
這樣即可進(jìn)行全局事物管理

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論

金乡县| 田东县| 姜堰市| 安岳县| 封丘县| 祁阳县| 尖扎县| 万州区| 锦屏县| 托里县| 太仆寺旗| 民勤县| 滨海县| 博白县| 甘洛县| 安龙县| 贵溪市| 烟台市| 万安县| 泰安市| 通化县| 昌黎县| 仁布县| 昆明市| 色达县| 沾益县| 嵊泗县| 延吉市| 金平| 新田县| 昌图县| 北京市| 深圳市| 苏尼特右旗| 朔州市| 玉林市| 民丰县| 五莲县| 莎车县| 南和县| 济宁市|