簡體   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