yml连接两个mysql数据库_Springboot配置连接两个数据库

背景:

项目中需要从两个不同的数据库查询数据,之前实现方法是:springboot配置连接一个数据源,另一个使用jdbc代码连接。

为了改进,现在使用SpringBoot配置连接两个数据源

实现效果:

一个SpringBoot项目,同时连接两个数据库:比如一个是pgsql数据库,一个是oracle数据库

(啥数据库都一样,连接两个同为oracle的数据库,或两个不同的数据库,只需要更改对应的driver-class-name和jdbc-url等即可)

注意:连接什么数据库,要引入对应数据库的包

实现步骤:

1、修改application.yml,添加一个数据库连接配置

(我这里是yml格式,后缀为properties格式是一样的)

server:

port:7101spring:

jpa:

show-sql: truedatasource:

test1:

driver-class-name: org.postgresql.Driver

jdbc-url: jdbc:postgresql://127.0.0.1:5432/test #测试数据库

username: root

password: root

test2:

driver-class-name: oracle.jdbc.driver.OracleDriver

jdbc-url: jdbc:oracle:thin:@127.0.0.1:8888:orcl #测试数据库

username: root

password: root

注意红色字体:

(1)使用test1、test2区分两个数据库连接

(2)url改为:jdbc-url

2、使用代码进行数据源注入,和扫描dao层路径(以前是在yml文件里配置mybatis扫描dao的路径)

新建config包,包含数据库1和数据库2的配置文件

2d4d1e48c70095d8334599984141a4d0.png

(1)第一个数据库作为主数据库,项目启动默认连接此数据库

DataSource1Config.java

packagecom.test.config;importorg.apache.ibatis.session.SqlSessionFactory;importorg.mybatis.spring.SqlSessionFactoryBean;importorg.mybatis.spring.SqlSessionTemplate;importorg.mybatis.spring.annotati

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你需要同时配置两个空间的Nebula数据源,并且还需要配置MySQL数据库,你可以按照以下步骤进行配置: 1. 在`application.yml`文件中定义两个数据源,分别对应两个Nebula空间和一个MySQL数据库: ```yaml spring: datasource: nebula1: url: jdbc:nebula:127.0.0.1:9669?space=space1 username: user password: password nebula2: url: jdbc:nebula:127.0.0.1:9669?space=space2 username: user password: password mysql: url: jdbc:mysql://localhost:3306/mydb username: user password: password ``` 2. 在代码中,你需要定义三个`DataSource` bean,分别对应两个Nebula数据源和一个MySQL数据源。你可以在`NebulaDataSourceConfig`类中定义这些bean: ```java @Configuration public class NebulaDataSourceConfig { @Bean(name = "nebula1DataSource") @ConfigurationProperties(prefix = "spring.datasource.nebula1") public DataSource nebula1DataSource() { return DataSourceBuilder.create().build(); } @Bean(name = "nebula2DataSource") @ConfigurationProperties(prefix = "spring.datasource.nebula2") public DataSource nebula2DataSource() { return DataSourceBuilder.create().build(); } @Bean(name = "mysqlDataSource") @ConfigurationProperties(prefix = "spring.datasource.mysql") public DataSource mysqlDataSource() { return DataSourceBuilder.create().build(); } } ``` 在上面的示例中,我们定义了三个`DataSource` bean,分别对应两个Nebula数据源和一个MySQL数据源。每个bean都使用了`@ConfigurationProperties`注解来读取配置文件中的属性。 3. 在代码中,你可以使用`@Qualifier`注解来指定使用哪个数据源。例如: ```java @Service public class MyService { @Autowired @Qualifier("nebula1DataSource") private DataSource nebula1DataSource; @Autowired @Qualifier("nebula2DataSource") private DataSource nebula2DataSource; @Autowired @Qualifier("mysqlDataSource") private DataSource mysqlDataSource; // ... } ``` 在上面的代码中,我们使用了`@Qualifier`注解来指定使用哪个数据源。在这里,我们使用了`nebula1DataSource`、`nebula2DataSource`和`mysqlDataSource`三个bean的名称来进行区分。 希望这个示例能够对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值