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

springboot連接多個數(shù)據(jù)庫的實(shí)現(xiàn)方法

 更新時間:2024年08月18日 11:53:01   作者:愛寫B(tài)ug的小孫  
有時候一個SpringBoot項目需要同時連接兩個數(shù)據(jù)庫,本文就來介紹一下springboot連接多個數(shù)據(jù)庫的實(shí)現(xiàn)方法,具有一定的參考價值,感興趣的可以了解一下

一個SpringBoot項目,同時連接兩個數(shù)據(jù)庫:比如一個是Mysql數(shù)據(jù)庫,一個是oracle數(shù)據(jù)庫(啥數(shù)據(jù)庫都一樣,連接兩個同為oracle的數(shù)據(jù)庫,或兩個不同的數(shù)據(jù)庫,只需要更改對應(yīng)的driver-class-name和jdbc-url等即可)注意:連接什么數(shù)據(jù)庫,要引入對應(yīng)數(shù)據(jù)庫的包。

第一步:

導(dǎo)入pom

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.0</version>
</dependency>
 
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

第二步:

修改application.yml配置文件(我采用本地的,IP地址是一致的,實(shí)際開發(fā)中,是兩臺云服務(wù),兩臺MySQL地址進(jìn)行主從讀寫)

    mysql1:
      driver-class-name: com.mysql.cj.jdbc.Driver
      jdbcUrl: jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
      username: "root"
      password: "12345678"
      type: com.alibaba.druid.pool.DruidDataSource
    mysql2:
      driver-class-name: com.mysql.cj.jdbc.Driver
      jdbcUrl: jdbc:mysql://localhost:3306/test1?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
      username: "root"
      password: "12345678"
      type: com.alibaba.druid.pool.DruidDataSource

在這里插入圖片描述

注意格式上面spring.datasource省略了

第三步:

建造配置類:
(1)第一個庫配置信息:

/**
 * 數(shù)據(jù)庫leadnews_article
 */
@Configuration
@MapperScan(basePackages = {"com.example.demo.mapper.db1"}, sqlSessionFactoryRef = "sqlSessionFactoryArticle")
public class DBSrcArticle {
    @Bean
    public SqlSessionFactory sqlSessionFactoryArticle(@Qualifier("mysql1") DataSource dataSource) throws Exception {
        MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
        sqlSessionFactory.setDataSource(dataSource);
        sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
                .getResources("classpath:mapper/db1/*.xml"));
        return sqlSessionFactory.getObject();
    }

    @Bean
    public SqlSessionTemplate sqlSessionTemplateArticle(@Qualifier("sqlSessionFactoryArticle") SqlSessionFactory sqlSessionFactory) throws Exception {
        return new SqlSessionTemplate(sqlSessionFactory);
    }
}

(2)第二個庫配置

/**
 * 數(shù)據(jù)庫leadnews_user
 */
@Configuration
@MapperScan(basePackages = {"com.example.demo.mapper.db2"}, sqlSessionFactoryRef = "sqlSessionFactoryUser")
public class dBSrcUser {
    @Bean
    @Primary
    public SqlSessionFactory sqlSessionFactoryUser(@Qualifier("mysql2") DataSource dataSource) throws Exception {
        MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
        sqlSessionFactory.setDataSource(dataSource);
        sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
                .getResources("classpath:mapper/db2/*.xml"));
        return sqlSessionFactory.getObject();
    }

    @Bean
    @Primary
    public SqlSessionTemplate sqlSessionTemplateUser(@Qualifier("sqlSessionFactoryUser") SqlSessionFactory sqlSessionFactory) throws Exception {
        return new SqlSessionTemplate(sqlSessionFactory);
    }
}

(3)數(shù)據(jù)源配置:

/**
 * 數(shù)據(jù)源配置
 */
@Configuration
public class DataSourceConfig {
    @Primary
    @Bean(name = "mysql1")
    @ConfigurationProperties(prefix = "spring.datasource.mysql1")
    public DataSource dBSrcArticle() {
        return DataSourceBuilder.create().build();
    }

    @Primary
    @Bean(name = "mysql2")
    @ConfigurationProperties(prefix = "spring.datasource.mysql2")
    public DataSource dBSrcUser() {
        return DataSourceBuilder.create().build();
    }
}

注意:連接兩個以上的數(shù)據(jù)庫,需要對mapper文件夾進(jìn)行分包!

在這里插入圖片描述

第四步:

在啟動類中加上這三個注解:

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@MapperScan(basePackages = {"com.example.demo.entity.db1"}, sqlSessionFactoryRef = "sqlSessionFactoryArticle")
@MapperScan(basePackages = {"com.example.demo.entity.db2"}, sqlSessionFactoryRef = "sqlSessionFactoryUser")

此時:已經(jīng)可以訪問兩個數(shù)據(jù)庫內(nèi)容了。

到此這篇關(guān)于springboot連接多個庫的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)springboot連接多個庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Maven配置本地倉庫、中央倉庫、公司私有倉庫全過程

    Maven配置本地倉庫、中央倉庫、公司私有倉庫全過程

    文章介紹在公司環(huán)境中配置Maven的三種常用方法:設(shè)置本地倉庫路徑、使用阿里云鏡像加速、優(yōu)先使用私有倉庫,通過修改settings.xml文件,配置服務(wù)器信息、鏡像地址及激活策略,實(shí)現(xiàn)依賴查找優(yōu)化,提升項目構(gòu)建效率
    2025-09-09
  • Java線程同步機(jī)制_動力節(jié)點(diǎn)Java學(xué)院整理

    Java線程同步機(jī)制_動力節(jié)點(diǎn)Java學(xué)院整理

    在之前,已經(jīng)學(xué)習(xí)到了線程的創(chuàng)建和狀態(tài)控制,但是每個線程之間幾乎都沒有什么太大的聯(lián)系??墒怯械臅r候,可能存在多個線程多同一個數(shù)據(jù)進(jìn)行操作,這樣,可能就會引用各種奇怪的問題?,F(xiàn)在就來學(xué)習(xí)多線程對數(shù)據(jù)訪問的控制吧
    2017-05-05
  • JavaEE的進(jìn)程,線程和創(chuàng)建線程的5種方式詳解

    JavaEE的進(jìn)程,線程和創(chuàng)建線程的5種方式詳解

    這篇文章主要為大家詳細(xì)介紹了JavaEE的進(jìn)程,線程和創(chuàng)建線程的5種方式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • springboot讀取配置文件中的參數(shù)具體步驟

    springboot讀取配置文件中的參數(shù)具體步驟

    在本篇文章里小編給大家分享了關(guān)于springboot讀取配置文件中的參數(shù)的相關(guān)知識點(diǎn)內(nèi)容,有需要的朋友們跟著學(xué)習(xí)下。
    2019-06-06
  • Java?Request獲取請求頭數(shù)據(jù)實(shí)例詳解

    Java?Request獲取請求頭數(shù)據(jù)實(shí)例詳解

    在開發(fā)中我們經(jīng)常需要獲取用戶IP地址,通過地址來實(shí)現(xiàn)一些功能,下面這篇文章主要給大家介紹了關(guān)于Java中Request獲取請求頭數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • java判斷請求是來自PC端還是手機(jī)端小技巧

    java判斷請求是來自PC端還是手機(jī)端小技巧

    這篇文章主要為大家介紹了java判斷請求是來自PC端還是手機(jī)端小技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • dubbo擴(kuò)展點(diǎn)AOP切面功能擴(kuò)展示例詳解

    dubbo擴(kuò)展點(diǎn)AOP切面功能擴(kuò)展示例詳解

    這篇文章主要為大家介紹了dubbo擴(kuò)展點(diǎn)AOP切面功能擴(kuò)展示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • 手工體驗smtp和pop3協(xié)議 郵件實(shí)現(xiàn)詳解(二)

    手工體驗smtp和pop3協(xié)議 郵件實(shí)現(xiàn)詳解(二)

    POP3/IMAP協(xié)議定義了郵件客戶端軟件和POP3郵件服務(wù)器的通信規(guī)則,這篇文章我們就來手工體驗SMTP和POP3協(xié)議的奧秘,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 深入理解Spring事務(wù)的隔離級別

    深入理解Spring事務(wù)的隔離級別

    Spring 事務(wù)的隔離級別是一個重要的概念,它定義了事務(wù)之間的隔離程度,以防止并發(fā)問題(如臟讀、不可重復(fù)讀和幻讀),本文給大家介紹Spring事務(wù)的隔離級別,感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • 淺析java中static的用法

    淺析java中static的用法

    這篇文章主要介紹了java中static的用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評論

高安市| 子洲县| 宣恩县| 汉寿县| 比如县| 安阳县| 罗山县| 怀化市| 珠海市| 新乡市| 周宁县| 方山县| 微博| 阿城市| 水富县| 理塘县| 韶关市| 辉县市| 定州市| 柏乡县| 改则县| 年辖:市辖区| 五华县| 浦东新区| 正镶白旗| 浪卡子县| 沾化县| 望都县| 渝北区| 深泽县| 驻马店市| 霍山县| 三穗县| 嘉定区| 潮州市| 佛教| 涪陵区| 佛学| 德安县| 山丹县| 巴林左旗|