背景:
对于简单地跨库查询我们可以通过跨库SQL和在数据库中提前创建跨库查询视图来实现,但有时我们需要在一个项目中多次使用来自两个数据源的数据,所以就需要在配置中配多个数据源。
实现效果:
一个SpringBoot项目,同时连接两个数据库:比如一个是pgsql数据库,一个是oracle数据库(啥数据库都一样,连接两个同为oracle的数据库,或两个不同的数据库,只需要更改对应的driver-class-name和jdbc-url等即可)
注意:连接什么数据库,要引入对应数据库的包
实现步骤:
1、修改application.yml,添加一个数据库连接配置
(我这里是yml格式,后缀为properties格式是一样的)
server:
port: 7101
spring:
jpa:
show-sql: true
datasource:
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的配置文件
(1)第一个数据库作为主数据库,项目启动默认连接此数据库
DataSource1Config.java
主数据库都有 @Primary注解,从数据库都没有
package com.test.config;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring