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

springboot如何連接兩個(gè)數(shù)據(jù)庫(kù)(多個(gè))

 更新時(shí)間:2022年01月25日 11:54:35   作者:wuyuanshun  
這篇文章主要介紹了springboot如何連接兩個(gè)數(shù)據(jù)庫(kù)(多個(gè)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、啟動(dòng)類

1.啟動(dòng)類需要不用加mybatis的@MapperScan注解

@SpringBootApplication
public class AppPush {
? ? public static void main(String[] args) {
? ? ? ? SpringApplication.run(AppPush.class,args);
? ? }
}

二、application.yml文件

配置倆個(gè)或多個(gè)數(shù)據(jù)庫(kù)連接,我這里用的是postgresql,用mysql等也是一樣

spring:
? datasource:
# ? ?driver-class-name: org.postgresql.Driver
# ? ?url: jdbc:postgresql://127.0.0.1/aaa
# ? ?username: root
# ? ?password: root
? ? ? one:
? ? ? ? driver-class-name: org.postgresql.Driver
? ? ? ? url: jdbc:postgresql://127.0.0.1/aaa
? ? ? ? username: root
? ? ? ? password: root
? ? ? two:
? ? ? ? driver-class-name: org.postgresql.Driver
? ? ? ? url: jdbc:postgresql://127.0.0.1/bbb
? ? ? ? username: root
? ? ? ? password: root

三、創(chuàng)建配置類

1.注意:@MapperScan 的basePackages就是你包的路徑 ,

sqlSessionFactoryRef 可以隨便起名 但是著兩個(gè)類不能重復(fù)!

One配置類

package com.wys.config;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import javax.sql.DataSource;
/**
 * @program:  
 * @description: 數(shù)據(jù)庫(kù)配置1
 * @author: wys
 * @create: 2019-12-03 16:20
 **/
@Configuration
@MapperScan(basePackages = "com.wys.mapper.**", sqlSessionFactoryRef = "oneSqlSessionFactory")
public class OneDataSourceConfig {
    @Value("${spring.datasource.one.driver-class-name}")
    String driverClass;
    @Value("${spring.datasource.one.url}")
    String url;
    @Value("${spring.datasource.one.username}")
    String userName;
    @Value("${spring.datasource.one.password}")
    String passWord;
    @Primary
    @Bean(name = "oneDataSource")
    @ConfigurationProperties("spring.datasource.one")
    public DataSource masterDataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName(driverClass);
        dataSource.setUrl(url);
        dataSource.setUsername(userName);
        dataSource.setPassword(passWord);
        return dataSource;
    }
    @Bean(name = "oneSqlSessionFactory")
    public SqlSessionFactory sqlSessionFactory(@Qualifier("oneDataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
        sessionFactoryBean.setDataSource(dataSource);
        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
                .getResources("classpath:mybatis/mapper-postgre/*.xml"));        
        return sessionFactoryBean.getObject();
    }
    @Bean(name = "oneSqlSessionTemplate")
    public SqlSessionTemplate sqlSessionFactoryTemplate(@Qualifier("oneSqlSessionFactory")SqlSessionFactory sqlSessionFactory ) throws Exception {
        return new SqlSessionTemplate(sqlSessionFactory);
    }
}

Two配置類

package com.wys.config;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import javax.sql.DataSource;
/**
 * @program:  
 * @description: 數(shù)據(jù)庫(kù)配置2
 * @author: wys
 * @create: 2019-12-03 17:03
 **/
@Configuration
@MapperScan(basePackages = "com.wys.mappers",sqlSessionFactoryRef = "twoSqlSessionFactory")
public class TwoDataSourceConfig {
    @Value("${spring.datasource.two.driver-class-name}")
    String driverClass;
    @Value("${spring.datasource.two.url}")
    String url;
    @Value("${spring.datasource.two.username}")
    String userName;
    @Value("${spring.datasource.two.password}")
    String passWord;
    
    @Bean(name = "twoDataSource")
    @ConfigurationProperties("spring.datasource.two")
    public DataSource masterDataSource(){
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName(driverClass);
        dataSource.setUrl(url);
        dataSource.setUsername(userName);
        dataSource.setPassword(passWord);
        return dataSource;
    }
    @Bean(name = "twoSqlSessionFactory")
    public SqlSessionFactory sqlSessionFactory(@Qualifier("twoDataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
        sessionFactoryBean.setDataSource(dataSource);
        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
                .getResources("classpath:mybatis/mapper-postgres/*.xml"));         
        return sessionFactoryBean.getObject();
    }
    
    @Bean(name = "twoSqlSessionTemplate")
    public SqlSessionTemplate sqlSessionFactoryTemplate(@Qualifier("twoSqlSessionFactory")SqlSessionFactory sqlSessionFactory ) throws Exception {
        return new SqlSessionTemplate(sqlSessionFactory);
    }
}

四 、結(jié)構(gòu)

可能有人不清楚項(xiàng)目的結(jié)構(gòu),我在下面放了一張類結(jié)構(gòu)圖,能更清晰和方便理解。

注意:和之前的項(xiàng)目的主要區(qū)別就是 mapper包多了一個(gè),mapper的xml包也多了一個(gè),不同的數(shù)據(jù)庫(kù)mapper放到不同的包內(nèi)就可以了。

類結(jié)構(gòu)

五、多數(shù)據(jù)源的事物問(wèn)題

在使用多數(shù)據(jù)源時(shí),有可能會(huì)遇到事物失敗的問(wèn)題。我單獨(dú)總結(jié)了一個(gè)文章。需要的話可以閱讀一下。@Transactional注解異常報(bào)錯(cuò)之多數(shù)據(jù)源.

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java線程的聯(lián)合用法實(shí)例分析

    Java線程的聯(lián)合用法實(shí)例分析

    這篇文章主要介紹了Java線程的聯(lián)合用法,結(jié)合實(shí)例形式分析了java線程聯(lián)合的原理、實(shí)現(xiàn)方法及相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • Java之JsonArray用法講解

    Java之JsonArray用法講解

    這篇文章主要介紹了Java之JsonArray用法講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 詳解Java中的Lambda表達(dá)式

    詳解Java中的Lambda表達(dá)式

    這篇文章主要介紹了Java中的Lambda表達(dá)式的的相關(guān)資料,文中講解非常詳細(xì),示例代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • springboot手動(dòng)事務(wù)回滾的實(shí)現(xiàn)代碼

    springboot手動(dòng)事務(wù)回滾的實(shí)現(xiàn)代碼

    這篇文章主要介紹了springboot手動(dòng)事務(wù)回滾的實(shí)現(xiàn)方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • IDEA連接mysql保姆級(jí)教學(xué)教程

    IDEA連接mysql保姆級(jí)教學(xué)教程

    學(xué)習(xí)使用IDEA的時(shí)候,需要連接Database,下面這篇文章主要給大家介紹了關(guān)于IDEA連接mysql的保姆級(jí)教學(xué)教程,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • 教你如何編寫簡(jiǎn)單的網(wǎng)絡(luò)爬蟲

    教你如何編寫簡(jiǎn)單的網(wǎng)絡(luò)爬蟲

    實(shí)際的爬蟲是從一系列的種子鏈接開始。種子鏈接是起始節(jié)點(diǎn),種子頁(yè)面的超鏈接指向的頁(yè)面是子節(jié)點(diǎn)(中間節(jié)點(diǎn)),對(duì)于非html文檔,如excel等,不能從中提取超鏈接,看做圖的終端節(jié)點(diǎn)
    2013-10-10
  • 顯示IntelliJ IDEA工具的Run Dashboard功能圖文詳解

    顯示IntelliJ IDEA工具的Run Dashboard功能圖文詳解

    這篇文章主要介紹了顯示IntelliJ IDEA工具的Run Dashboard功能,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • mybatis查詢返回Map<String,Object>類型的講解

    mybatis查詢返回Map<String,Object>類型的講解

    這篇文章主要介紹了mybatis查詢返回Map<String,Object>類型的講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Log4j定時(shí)打印日志及添加模塊名配置的Java代碼實(shí)例

    Log4j定時(shí)打印日志及添加模塊名配置的Java代碼實(shí)例

    這篇文章主要介紹了Log4j定時(shí)打印日志及添加模塊名配置的Java代碼實(shí)例,Log4j是Apache的一個(gè)開源Java日志項(xiàng)目,需要的朋友可以參考下
    2016-01-01
  • Java枚舉_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java枚舉_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    enum 的全稱為 enumeration, 是 JDK 5 中引入的新特性,存放在 java.lang 包中。這篇文章給大家介紹Java枚舉相關(guān)知識(shí),需要的的朋友參考下
    2017-04-04

最新評(píng)論

新龙县| 将乐县| 汉源县| 民乐县| 阿荣旗| 深泽县| 甘南县| 天祝| 轮台县| 禄劝| 叶城县| 会东县| 南乐县| 太湖县| 曲阳县| 乐至县| 石景山区| 开阳县| 南漳县| 泰来县| 汝州市| 沿河| 丹江口市| 清原| 奉新县| 仙桃市| 化德县| 南召县| 略阳县| 宾川县| 白朗县| 喀喇沁旗| 余姚市| 巢湖市| 扬中市| 肥东县| 山西省| 夏邑县| 延津县| 蒙山县| 子长县|