具有MySQL连接和oracle连接的Spring Boot应用程序? (两个数据库)

时间:2019-03-13 16:58:21

标签: java hibernate spring-boot ojdbc

我有以下application.properties:

## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring.datasource.url= ${DATASOURCE_URL}
spring.datasource.username= ${DATASOURCE_USERNAME}
spring.datasource.password= ${DATASOURCE_PASSWORD}

## Other Database
second.datasource.url="jdbc:oracle:thin:@localhost:1521:XE"
second.datasource.username=usr
second.datasource.password=password
second.datasource.driver-class-name=oracle.jdbc.OracleDriver
second.jpa.show-sql=true

## Hibernate Properties

# The SQL dialect makes Hibernate generate better SQL for the chosen database
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto = update
spring.jpa.database=default

目前有用的目标和事物:顶部的spring数据源工作正常。我可以将其用于所有主要需求。下面的第二个,将查询旧系统并从中获取数据。

问题:我根本不知道如何使第二个数据源正常工作。我需要获取它以执行查询并获取返回的内容。理想情况下,我希望看到一个可行的示例。我看了几篇博客文章,然后在Google周围搜索,显然我缺少一些重要信息。

2 个答案:

答案 0 :(得分:0)

以上是默认设置,spring可以自行找到它。要创建其他数据源,您需要在某个地方设置数据源bean,并从配置中读取值。

最简单的方法是创建一个带有配置注释的类,并为两个数据源定义bean。

我建议使用HikariDataSource,您可以在此处详细了解如何进行设置:https://www.baeldung.com/hikaricp

对于配置,您可以通过自动安装环境并从那里读取属性来使用环境。

例如

environment.getProperty(“ second.datasource.url”)

答案 1 :(得分:0)

查看此链接中的说明:https://www.baeldung.com/spring-data-jpa-multiple-databases

1)您需要为每个数据源提供JPA配置,并为每个数据源提供2)独立的实体程序包,并且3)您必须将其中一个数据源指定为主数据库。