簡體   English   中英

在 Java 中動態連接數據庫(Spring Boot)

[英]Dynamically connecting to Database in Java(Spring Boot)

我想在每個 http 請求時連接到數據庫(在每個請求中,我都會從用戶那里獲取數據庫詳細信息)。誰能建議如何使用 spring-boot-starter-jpa 來做到這一點。

我無法將屬性文件用於數據庫配置詳細信息。 因為我將從 http 請求動態獲取詳細信息。

我使用的是 2.0.0.M3 spring boot 版本。

我建議您更好地使用本機 JDBC 代碼來連接數據庫並執行查詢。 如果要使用 spring 數據 jpa,則必須在運行時為DataSourceEntityManagerFactoryJpaTransactionManager創建 bean。

如果數據庫詳細信息將出現在每個用戶請求中,並且您希望在每個 http 請求上連接數據庫,那么這不是可取的,因為在沒有數據庫實例化的情況下,在應用程序啟動時甚至沒有實體管理器工廠。 但是,在這種情況下,您必須手動管理所有這些內容。 您必須在每個請求上手動創建數據源、事務管理器、實體管理器等實例化和初始化,並將它們注冊到 spring IOC 容器,在請求完成后,您必須從 Spring IOC 手動刪除(取消注冊)這些實例。 您也可以為此創建攔截器。 但是沒有人應該手動執行這個過程,因為它太老練和更復雜,我們正在負擔這個實例化以自己銷毀 bean。 甚至 spring 也能很好地管理它,我們通過自己負責來制造復雜性。

我覺得直接連接用戶的數據庫可能不太合適。我建議做一個接口程序,把你需要的動態數據收集到一個數據庫中。你不能在你的代碼中改變連接參數的屬性。

您需要使用@ConfigurationProperties注釋在類中加載spring boot 的屬性文件。

您還需要在此類中調用數據庫配置 api。

相同的要求,我確信我連接的所有數據庫都具有相同的結構

到現在有什么解決辦法嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM