繁体   English   中英

Spring Boot 多个 MySQL 数据库

[英]Spring Boot Multiple MySQL Databases

我有一个包含大约 15 个数据库的 MySQL 服务器(每个数据库有 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。

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

Project │ pom.xml │ manifest.yml │ └───src └───main └───java | └───com | └───myorg | | Application.java | └───config | | | DatabaseConfig.java | | | └───databases | └───database1 | | | Database1Config.java | | └───models | | | | TableA.java | | | | TableB.java | | | | TableC.java | | | | | └───controllers | | | | TableAController.java | | | | TableBController.java | | | | TableCController.java | | | | | └───repositories | | | TableARepository.java | | | TableBRepository.java | | | TableCRepository.java | | | └───database2 | | Database2Config.java | └───models | | | TableD.java | | | TableE.java | | | TableF.java | | | └───controllers | | | TableEController.java | | | TableDController.java | | | TableFController.java | | | └───repositories | | TableDRepository.java | | TableERepository.java | | TableFRepository.java | └───resources | application.properties

从本质上讲,这就是我想要的文件结构,因为我知道将来它会随着表格一起增长。 如果还有其他更有意义的事情,我全神贯注。

如果有人可以提供描述我需要的文档的链接,那就太好了。 我不是在找人为我编码,只需要指出正确的方向。

如果需要更多说明,请告诉我。 谢谢!

Hibernate 提供多租户,允许在多个模式或数据库之间动态切换。 Hibernate 文档更详细地描述了它。 一个更面向弹簧的例子可以在这里这里找到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM