Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring启动多个MySQL数据库_Java_Spring_Spring Mvc_Spring Boot - Fatal编程技术网

Java Spring启动多个MySQL数据库

Java Spring启动多个MySQL数据库,java,spring,spring-mvc,spring-boot,Java,Spring,Spring Mvc,Spring Boot,我有一个MySQL服务器,它包含大约15个数据库(每个数据库有5-20个表)。(不是我的选择,也不是可以改变的东西) 我读过几篇stackoverflow、baeldung等文章,它们都谈到了多个数据源,但似乎都是指使用Postgres/MySQL或MySQL/H2。我正在寻找一个可扩展的MySQL解决方案,它允许使用多个数据库 我对Spring有些陌生,但不熟悉Java,所以我可能只是缺少了一些东西。这将是我的属性文件的一个示例 应用程序属性 spring.datasource.databas

我有一个MySQL服务器,它包含大约15个数据库(每个数据库有5-20个表)。(不是我的选择,也不是可以改变的东西)

我读过几篇stackoverflow、baeldung等文章,它们都谈到了多个数据源,但似乎都是指使用Postgres/MySQL或MySQL/H2。我正在寻找一个可扩展的MySQL解决方案,它允许使用多个数据库

我对Spring有些陌生,但不熟悉Java,所以我可能只是缺少了一些东西。这将是我的属性文件的一个示例

应用程序属性

spring.datasource.database1.db.url=jdbc:mysql://localhost:3306/database1
spring.datasource.database1.db.username=user
spring.datasource.database1.db.password=password
spring.datasource.database1.db.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.database1.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.datasource.database1.jpa.show-sql=true
spring.datasource.database1.jpa.generate-ddl=true
spring.datasource.database1.jpa.hibernate.ddl-auto=update

spring.datasource.database2.db.url=jdbc:mysql://localhost:3306/database2
spring.datasource.database2.db.username=user
spring.datasource.database2.db.password=password
spring.datasource.database2.db.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.database2.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.datasource.database2.jpa.show-sql=true
spring.datasource.database2.jpa.generate-ddl=true
spring.datasource.database2.jpa.hibernate.ddl-auto=update

spring.datasource.database3.db.url=jdbc:mysql://localhost:3306/database3
spring.datasource.database3.db.username=user
spring.datasource.database3.db.password=password
spring.datasource.database3.db.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.database3.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.datasource.database3.jpa.show-sql=true
spring.datasource.database3.jpa.generate-ddl=true
spring.datasource.database3.jpa.hibernate.ddl-auto=update
我觉得属性的jpa部分是多余的,但当我试图在配置文件中重用它们时,它抱怨说,无法编译。我不知道如何重用@ConfigurationProperties

我的文件结构将包含每个数据库的文件夹,而每个数据库又将包含每个模型、控制器、存储库等的文件夹。例如:


项目
│   pom.xml
│   manifest.yml
│
└───src
└───主要的
└───JAVA
|   └───通用域名格式
|       └───迈尔格
|| Application.java
|           └───配置
|| | DatabaseConfig.java
|           |
|           └───数据库
|               └───数据库1
|| | Database1Config.java
|               |   └───模型
|| | | TableA.java
|| | | TableB.java
|| | | table c.java
|               |   |
|               |   └───控制器
|| | | TableAController.java
|| | | TableBController.java
|| | | TableCController.java
|               |   |
|               |   └───存储库
|| | TableARepository.java
|| | TableBRepository.java
|| | TableCRepository.java
|               |
|               └───数据库2
|| Database2Config.java
|                   └───模型
|| | TableD.java
|| | table.java
|| | TableF.java
|                   |
|                   └───控制器
|| | TableController.java
|| | TableDController.java
|| | TableFController.java
|                   |
|                   └───存储库
|| TableDRepository.java
|| tableRepository.java
|| TableFRepository.java
|
└───资源
|应用程序属性

本质上,这就是我想要的文件结构,因为我知道它在未来将随着表的增长而增长。如果还有什么更有意义的话,我洗耳恭听

如果有人能提供一个文档链接来描述我需要什么,那就太好了。我不是在找人来为我编码,只是需要被指向正确的方向


如果需要更多的澄清,请告诉我。谢谢

Hibernate提供多租户,允许在多个架构或数据库之间动态切换。报告将对其进行更详细的描述。可以找到一个更面向spring的示例,并且。

属性只支持数据库的单个实例,如果您需要多个实例,那么您必须自己为它们创建bean。检查这个答案