首页 > 数据库 >spring boot 如何配置多个数据源,mysql和oracle

spring boot 如何配置多个数据源,mysql和oracle

时间:2023-07-19 16:33:26浏览次数:48  
标签:name spring mysql JdbcTemplate 数据源 oracle public

在Spring Boot中配置多个数据源,例如MySQL和Oracle,可以通过以下步骤实现:

  1. 添加依赖

pom.xml文件中添加MySQL和Oracle的依赖:

<!-- MySQL -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

<!-- Oracle -->
<dependency>
    <groupId>com.oracle.ojdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>19.3.0.0</version>
</dependency>
  1. 配置数据源

application.ymlapplication.properties文件中配置MySQL和Oracle的数据源:

spring:
  datasource:
    mysql:
      url: jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC
      username: mysql_user
      password: mysql_password
      driver-class-name: com.mysql.cj.jdbc.Driver
    oracle:
      url: jdbc:oracle:thin:@localhost:1521:orcl
      username: oracle_user
      password: oracle_password
      driver-class-name: oracle.jdbc.driver.OracleDriver
  1. 创建数据源配置类

创建一个配置类,用于定义两个数据源的Bean:

@Configuration
public class DataSourceConfig {

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

    @Bean(name = "oracleDataSource")
    @ConfigurationProperties(prefix = "spring.datasource.oracle")
    public DataSource oracleDataSource() {
        return DataSourceBuilder.create().build();
    }
}
  1. 创建JdbcTemplate

为每个数据源创建一个JdbcTemplate,以便在DAO层使用:

@Configuration
public class JdbcTemplateConfig {

    @Bean(name = "mysqlJdbcTemplate")
    public JdbcTemplate mysqlJdbcTemplate(@Qualifier("mysqlDataSource") DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }

    @Bean(name = "oracleJdbcTemplate")
    public JdbcTemplate oracleJdbcTemplate(@Qualifier("oracleDataSource") DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }
}
  1. 使用JdbcTemplate

在DAO层,可以通过@Autowired@Qualifier注解注入对应的JdbcTemplate,然后使用它们执行SQL操作:

@Repository
public class MyDao {

    @Autowired
    @Qualifier("mysqlJdbcTemplate")
    private JdbcTemplate mysqlJdbcTemplate;

    @Autowired
    @Qualifier("oracleJdbcTemplate")
    private JdbcTemplate oracleJdbcTemplate;

    // 使用mysqlJdbcTemplate和oracleJdbcTemplate执行SQL操作
}

 

标签:name,spring,mysql,JdbcTemplate,数据源,oracle,public
From: https://www.cnblogs.com/SparkMore/p/17565982.html

相关文章

  • SpringBoot系列---【StopWatch优雅实现统计代码耗时】
    StopWatch优雅实现统计代码耗时#org.springframework.util.StopWatchStopWatchstopWatch=newStopWatch();stopWatch.start("task1");//逻辑代码1...stopWatch.stop();log.debug("task1执行耗时:{}ms",stopWatch.getLastTaskTimeMillis());stopWatch.start("......
  • CentOS7安装Mysql8并进行主从复制配置
    场景CentOS7中安装Mysql8并配置远程连接和修改密码等:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/131807269在上面实现安装Mysql8的基础上,克隆出两台机器,修改ip后进行mysql的主从复制搭建。Mysql主从复制在主库上把数据更改记录到二进制日志中(BinaryLog)中,这......
  • SQL对决MySQL全面对比:差异、相似性、用途和优点!
    SQL和MySQL被用于编程和管理关系型数据库。了解SQL和MySQL之间的主要区别,以及在使用这些数据库管理工具的工作中所需的技能。SQL和MySQL是与数据库相关的语言。SQL是一种用于与关系型数据库中的数据交互的编程语言,而MySQL是一种实现SQL标准的开源数据库产品。相比其他关系型数据......
  • MySQL只多表查询
    多表查询内连接隐式内连接查询每一个员工的姓名,及关联的部门的名称(隐式内连接实现)表结构:emp,dept连接条件:emp.dept_id=dept.idselectemp,name,dept,namefromemp,deptwhereemp.dept_id=dept.id;selecte,name,d.namefromempe,deptdwheree.......
  • Mysql设置字段从1开始自增
    Mysql设置字段从1开始自增MySQL是一个开源的关系型数据库管理系统,被广泛应用于各种Web应用程序。在MySQL中,我们经常需要设置自增字段,以便在插入新记录时自动生成唯一的标识符。默认情况下,自增字段从1开始自动递增,但有时我们可能需要将自增字段的起始值设置为其他值。本文将介绍如......
  • Mysql查询字段时间加减
    MySQL查询字段时间加减在MySQL中,我们经常需要对时间进行加减操作,例如需要查询一个日期的前一天或后一天的数据。本文将介绍如何在MySQL中使用函数对时间字段进行加减操作,并提供一些常见的使用场景和示例代码。DATE_ADD和DATE_SUB函数在MySQL中,我们可以使用DATE_ADD和DATE_SUB函......
  • Mysql 查询不锁表
    Mysql查询不锁表在使用Mysql数据库进行大量数据读取时,常常会遇到查询导致表锁定的问题。查询锁定表可能会导致其他线程无法对该表进行修改操作,从而影响系统的并发性能。为了解决这个问题,Mysql提供了一些方法来实现查询不锁表的操作。1.事务隔离级别事务隔离级别是控制并发访问......
  • Mysql sum 返回了字符串
    Mysqlsum返回了字符串在Mysql数据库中,SUM函数用于计算数值型列的总和。然而,有时候我们会遇到SUM函数返回字符串的情况,这可能会导致数据处理和分析的问题。在本篇文章中,我们将讨论为什么SUM函数会返回字符串以及如何解决这个问题。为什么SUM函数返回字符串?当SUM函数......
  • Mysql 5.0.22
    如何安装Mysql5.0.22简介Mysql是一款功能强大的开源关系型数据库管理系统,被广泛应用于Web开发中。本文将向刚入行的开发者介绍如何安装Mysql5.0.22版本。安装步骤步骤操作步骤一下载Mysql5.0.22安装包步骤二安装Mysql5.0.22步骤三配置Mysql5.0.22步......
  • MySqlInjector 加不到springboot
    MySqlInjector加不到SpringBootSpringBoot是一个快速开发框架,它简化了Java应用程序的配置和部署过程。然而,有时我们可能会遇到一些问题,例如无法将MySqlInjector加到SpringBoot项目中。本文将介绍如何解决这个问题,并提供代码示例。问题描述当我们尝试将MySqlInjecto......