港海(天津)建设股份有限公司网站,重庆做优化的网络公司,入驻微信小程序多少钱,q a wordpress插件SpringBoot整合多数据源
在实际企业项目开发中#xff0c;我们经常会在SpringBoot项目中配置多数据源#xff0c;一方面可以减缓数据库压力#xff0c;另一方面可以也是业务需求的场景
下面就来看看如何在SpringBoot项目中配置多数据源
POM
在配置多数据源之前#xff…SpringBoot整合多数据源
在实际企业项目开发中我们经常会在SpringBoot项目中配置多数据源一方面可以减缓数据库压力另一方面可以也是业务需求的场景
下面就来看看如何在SpringBoot项目中配置多数据源
POM
在配置多数据源之前我们需要引入一些依赖
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.example/groupIdartifactIdzsxq_server/artifactIdversion0.0.1-SNAPSHOT/versionnamezsxq_server/namedescriptionzsxq_server/descriptionpropertiesjava.version1.8/java.versionproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingspring-boot.version3.0.2/spring-boot.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis-reactive/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactId/dependency!--jdbc--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jdbc/artifactId/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdscoperuntime/scope/dependency!--dameng--dependencygroupIdcom.dm/groupIdartifactIdDmJdbcDriver/artifactIdversion1.8.0/version/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion${spring-boot.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementbuildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdconfigurationsource17/sourcetarget17/targetencodingUTF-8/encoding/configuration/pluginplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion${spring-boot.version}/versionconfigurationincludeSystemScopetrue/includeSystemScope/configurationexecutionsexecutionidrepackage/idgoalsgoalrepackage/goal/goals/execution/executions/plugin/plugins/build/project
这里主要引入MySQL连接驱动包达梦数据库连接驱动包做这两个数据库的多数据源配置
YML
依赖引入后就可以配置YML文件多数据源的主要配置都在这里
spring:data:redis:host: 127.0.0.1port: 6379password:datasource:db1:driver-class-name: com.mysql.cj.jdbc.Driverjdbc-url: jdbc:mysql://localhost:3306/com?useSSLfalseuseServerPrepStmtstrueusername: rootpassword: rootdb2:driver-class-name: dm.jdbc.driver.DmDriverjdbc-url: jdbc:dm://127.0.0.1:5236/SYSDBA?zeroDateTimeBehaviorconvertToNulluseUnicodetruecharacterEncodingUTF-8username: SYSDBApassword: SYSDBA
DataSourceConfig
这个配置文件用来配置创建不同数据库的数据源
package com.example.config;import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.core.JdbcTemplate;import javax.sql.DataSource;Configuration
public class DataSourceConfig {PrimaryBean(name primaryDataSource)Qualifier(primaryDataSource)ConfigurationProperties(prefixspring.datasource.db1)public DataSource primaryDataSource() {return DataSourceBuilder.create().build();}Bean(name secondaryDataSource)Qualifier(secondaryDataSource)ConfigurationProperties(prefixspring.datasource.db2)public DataSource secondaryDataSource() {return DataSourceBuilder.create().build();}Bean(nameprimaryJdbcTemplate)public JdbcTemplate primaryJdbcTemplate (Qualifier(primaryDataSource) DataSource dataSource ) {return new JdbcTemplate(dataSource);}Bean(namesecondaryJdbcTemplate)public JdbcTemplate secondaryJdbcTemplate(Qualifier(secondaryDataSource) DataSource dataSource) {return new JdbcTemplate(dataSource);}}
用法
通过使用不同jdbcTemplate来访问不同的数据库
//从MySQL数据库获取数据
resultData primaryJdbcTemplate.queryForList(checkSql);//从达梦数据库获取数据
resultData secondaryJdbcTemplate.queryForList(checkSql);