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

SpringBoot項(xiàng)目配置postgresql數(shù)據(jù)庫完整步驟(配置多數(shù)據(jù)源)

 更新時(shí)間:2023年05月29日 10:33:14   作者:昊陽呀  
PostgreSQL是一種特性非常齊全的自由軟件的對(duì)象-關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(ORDBMS),下面這篇文章主要給大家介紹了關(guān)于SpringBoot項(xiàng)目配置postgresql數(shù)據(jù)庫(配置多數(shù)據(jù)源)的相關(guān)資料,需要的朋友可以參考下

pg庫也是常用的數(shù)據(jù)庫之一,有些剛開始接觸開發(fā)的老師可能不熟,這里簡單介紹一下,總體使用方法和mysql類似,所以這里只講配置方法

pom文件導(dǎo)入依賴

        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
        </dependency>        
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>42.2.18</version>
        </dependency>

yml文件配置(多數(shù)據(jù)源):

spring:
  datasource:
    bd3:
      jdbc-url: jdbc:postgresql://XXX.XXX.XX.XXX:5432/test1?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
      username: XXX
      password: XXX
      driver-class-name: org.postgresql.Driver
      type: com.zaxxer.hikari.HikariDataSource
      hikari:
        minimum-idle: 3
        auto-commit: true
        idle-timeout: 10000
        pool-name: DatebookHikariCP
        max-lifetime: 1800000
        connection-timeout: 30000
    timed:
      jdbc-url: jdbc:postgresql://XXX.XXX.XX.XXX:5432/test2?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
      username: XXX
      password: XXX
      driver-class-name: org.postgresql.Driver
      type: com.zaxxer.hikari.HikariDataSource
      hikari:
        minimum-idle: 3
        auto-commit: true
        idle-timeout: 10000
        pool-name: DatebookHikariCP
        max-lifetime: 1800000
        connection-timeout: 30000

這個(gè)地方test1是數(shù)據(jù)庫1,test2是數(shù)據(jù)庫2,yml文件一定要主要好格式,建議用properties

下面是有關(guān)于多數(shù)據(jù)源的配置

文件夾格式,這里直接放貼圖

不同數(shù)據(jù)源的dao層要放到對(duì)應(yīng)文件夾下

下面是數(shù)據(jù)源的配置文件

MyBaitsSqlSessionFactory配置文件

package com.XXX.XXX.datasource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.boot.autoconfigure.SpringBootVFS;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;
public class MyBaitsSqlSessionFactory {
    private MyBaitsSqlSessionFactory() {
    }
    private static final MyBaitsSqlSessionFactory onlyOne = new MyBaitsSqlSessionFactory();
    public static MyBaitsSqlSessionFactory getInstance() {
        return onlyOne;
    }
    public SqlSessionFactory sessionFactory(DataSource dataSource, String mapper_location, String type_aliases_package, boolean mapUnderscoreToCamelCase) throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        bean.setVfs(SpringBootVFS.class);
        //mybatis掃描xml所在位置
        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapper_location));
        //實(shí)體類位置
        bean.setTypeAliasesPackage(type_aliases_package);
        //mybatis配置
        org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
        configuration.setMapUnderscoreToCamelCase(mapUnderscoreToCamelCase);
        bean.setConfiguration(configuration);
        return bean.getObject();
    }
}

Bd3Config配置文件

package com.XXX.XXX.datasource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import javax.sql.DataSource;
@SpringBootConfiguration
@MapperScan(basePackages = "com.XXX.XXX.dao.bd3", sqlSessionFactoryRef = "bd3SessionFactory", sqlSessionTemplateRef = "bd3SqlSessionTemplate")
public class Bd3Config {
    //@Value("${mybatis.mapper-locations}")
    private String mapper_location = "classpath*:/mapper/bd3/**/*.xml";
    @Value("${mybatis.type-aliases-package}")
    private String type_aliases_package;
    @Value("${mybatis.configuration.map-underscore-to-camel-case}")
    private boolean mapUnderscoreToCamelCase;
    /**
     * 初始化連接池
     *
     * @return DataSource
     */
    @Bean(name = "bd3")
    @Primary
    @ConfigurationProperties(prefix = "spring.datasource.bd3")
    public DataSource bd3DataSource() {
        return DataSourceBuilder.create().build();
    }
    /**
     * 構(gòu)建 SqlSessionFactory
     *
     * @return SqlSessionFactory
     */
    @Bean(name = "bd3SessionFactory")
    @Primary
    public SqlSessionFactory bd3SessionFactory() throws Exception {
        MyBaitsSqlSessionFactory myBatisFactory = MyBaitsSqlSessionFactory.getInstance();
        return myBatisFactory.sessionFactory(bd3DataSource(), mapper_location, type_aliases_package, mapUnderscoreToCamelCase);
    }
    /*
     * 配置事物
     *
     * @return DataSourceTransactionManager
     */
    @Bean("bd3TransactionManager")
    @Primary
    public DataSourceTransactionManager TransactionManager() {
        return new DataSourceTransactionManager(bd3DataSource());
    }
    /**
     * 構(gòu)建 SqlSessionTemplate
     *
     * @return SqlSessionTemplate
     */
    @Bean(name = "bd3SqlSessionTemplate")
    @Primary
    public SqlSessionTemplate sqlSessionTemplate() throws Exception {
        return new SqlSessionTemplate(bd3SessionFactory());
    }
}

TimedConfig配置文件

package com.XXX.XXX.datasource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import javax.sql.DataSource;
@SpringBootConfiguration
@MapperScan(basePackages = "com.XX.XXX.dao.timed", sqlSessionFactoryRef = "timedSessionFactory", sqlSessionTemplateRef = "timedSqlSessionTemplate")
public class TimedConfig {
    //@Value("${mybatis.mapper-locations}")
    private String mapper_location = "classpath*:/mapper/timed/**/*.xml";
    @Value("${mybatis.type-aliases-package}")
    private String type_aliases_package;
    @Value("${mybatis.configuration.map-underscore-to-camel-case}")
    private boolean mapUnderscoreToCamelCase;
    /**
     * 初始化連接池
     *
     * @return DataSource
     */
    @Bean(name = "timed")
    @ConfigurationProperties(prefix = "spring.datasource.timed")
    public DataSource timedDataSource() {
        return DataSourceBuilder.create().build();
    }
    /**
     * 構(gòu)建 SqlSessionFactory
     *
     * @return SqlSessionFactory
     */
    @Bean(name = "timedSessionFactory")
    public SqlSessionFactory timedSessionFactory() throws Exception {
        MyBaitsSqlSessionFactory myBatisFactory = MyBaitsSqlSessionFactory.getInstance();
        return myBatisFactory.sessionFactory(timedDataSource(), mapper_location, type_aliases_package, mapUnderscoreToCamelCase);
    }
    /*
     * 配置事物
     *
     * @return DataSourceTransactionManager
     */
    @Bean("timedTransactionManager")
    public DataSourceTransactionManager TransactionManager() {
        return new DataSourceTransactionManager(timedDataSource());
    }
    /**
     * 構(gòu)建 SqlSessionTemplate
     *
     * @return SqlSessionTemplate
     */
    @Bean(name = "timedSqlSessionTemplate")
    public SqlSessionTemplate sqlSessionTemplate() throws Exception {
        return new SqlSessionTemplate(timedSessionFactory());
    }
}

然后就可以正常使用了,希望大家技術(shù)越來越好!

總結(jié)

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

相關(guān)文章

  • 解決bootstrap.yml不生效,無法優(yōu)先于application.yml文件加載問題

    解決bootstrap.yml不生效,無法優(yōu)先于application.yml文件加載問題

    文章主要討論了在Spring Boot項(xiàng)目中,`bootstrap.yml`文件無法優(yōu)先于`application.yml`文件加載的問題,原因是缺少了`nacos-config`依賴,且需要確保Spring Boot版本與`nacos-config`版本匹配,作者希望通過分享個(gè)人經(jīng)驗(yàn),幫助他人解決類似問題
    2024-12-12
  • SpringBoot注解@Import原理之關(guān)于ConfigurationClassPostProcessor源碼解析

    SpringBoot注解@Import原理之關(guān)于ConfigurationClassPostProcessor源碼解析

    這篇文章主要介紹了SpringBoot注解@Import原理之關(guān)于ConfigurationClassPostProcessor源碼解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Java中內(nèi)核線程理論及實(shí)例詳解

    Java中內(nèi)核線程理論及實(shí)例詳解

    在本篇文章里小編給大家整理了一篇關(guān)于Java中內(nèi)核線程理論及實(shí)例詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-03-03
  • java報(bào)錯(cuò)非法的前向引用問題

    java報(bào)錯(cuò)非法的前向引用問題

    這篇文章主要介紹了java報(bào)錯(cuò)非法的前向引用問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 淺談mybatis主鍵生成的幾種策略

    淺談mybatis主鍵生成的幾種策略

    本文主要介紹了淺談mybatis主鍵生成策略,包括使用數(shù)據(jù)庫自增主鍵、使用UUID生成主鍵和使用MyBatis-Plus的雪花算法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-01-01
  • Mybatis 緩存原理及失效情況解析

    Mybatis 緩存原理及失效情況解析

    這篇文章主要介紹了Mybatis 緩存原理及失效情況解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Java?ArrayList實(shí)現(xiàn)刪除指定位置的元素

    Java?ArrayList實(shí)現(xiàn)刪除指定位置的元素

    目標(biāo):list中有0到39共40個(gè)元素,刪除其中索引是10、20、30的元素。本文為大家整理了三個(gè)不同的方法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-01-01
  • SpringKafka消息發(fā)布之KafkaTemplate與事務(wù)支持功能

    SpringKafka消息發(fā)布之KafkaTemplate與事務(wù)支持功能

    通過本文介紹的基本用法、序列化選項(xiàng)、事務(wù)支持、錯(cuò)誤處理和性能優(yōu)化技術(shù),開發(fā)者可以構(gòu)建高效可靠的Kafka消息發(fā)布系統(tǒng),事務(wù)支持特性尤為重要,它確保了在分布式環(huán)境中的數(shù)據(jù)一致性,感興趣的朋友一起看看吧
    2025-04-04
  • java 學(xué)習(xí)筆記(入門篇)_java的基礎(chǔ)語法

    java 學(xué)習(xí)筆記(入門篇)_java的基礎(chǔ)語法

    從基礎(chǔ)語法開始,這個(gè)語法你也可以理解為英語或是漢語里面的語法,只不過大家各有各的特點(diǎn)和區(qū)別;那么在學(xué)習(xí)的過程中我們就要不斷的積累重要的類和方法,這樣寫程序就會(huì)方便快捷了,下面就開始學(xué)習(xí)java的基礎(chǔ)語法
    2013-01-01
  • java的socket請(qǐng)求和響應(yīng)方式

    java的socket請(qǐng)求和響應(yīng)方式

    這篇文章主要介紹了java的socket請(qǐng)求和響應(yīng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評(píng)論

焉耆| 泸水县| 大英县| 甘洛县| 张家界市| 班戈县| 大城县| 托里县| 崇州市| 衡阳县| 孝感市| 松滋市| 东丽区| 浏阳市| 吴江市| 喜德县| 忻州市| 镇平县| 牟定县| 黄骅市| 盱眙县| 阳谷县| 墨竹工卡县| 宝坻区| 商城县| 邵阳市| 永胜县| 安塞县| 隆林| 富裕县| 肥西县| 德保县| 仁寿县| 华池县| 镶黄旗| 吉安县| 宜黄县| 荥阳市| 高州市| 曲阜市| 于都县|