2017-05-27 222 views
0

我想創建一個演示,但我沒有得到如何實現, 可以任何身體幫助我配置它。休眠彈簧啓動

我正在使用彈簧引導,並休眠。

我有這樣的要求,首先我會通過表格獲取數據庫登錄信息, 然後我將它保存到任何文件或任何其他來源。

現在我已經登錄了數據庫的詳細信息, 現在我將允許hibernate連接我的數據庫並創建表,並且其他查詢將被執行。

但我面臨着Hibernate的問題,如 項目開始就說明我的錯誤

產生的原因:java.sql.SQLException中:拒絕訪問用戶「根」 @「localhost」的(使用密碼:YES )

因爲當項目開始時它會加載hibernate來創建表和結構。

但我想通過表單從用戶獲取數據庫登錄細節後執行此任務。

意味着我希望項目應該在沒有數據庫登錄細節的情況下啓動,並且休眠不會引發任何錯誤。

我想要解決這個問題。

+0

什麼是你的分貝的用戶名和密碼? – y2k

+0

我認爲你正在用這種方法讓自己變得很難。我可以問一下你不想在應用程序屬性中設置憑據的原因嗎?你正在對付這個框架。也許這不應該與春天實施? –

+0

乾草y2k!我開始時沒有用戶名和密碼,它將由用戶設置。 –

回答

0

我不認爲可以在應用程序啓動後配置數據庫連接。但是我看到了兩種可能的解決方案:

  • 首先,您需要對DataSource和EntityManager bean進行延遲初始化。所以你需要在手工模式下配置它們並用@Lazy對它們進行註釋,並在你接收到db的登錄名和密碼後調用它們。但是仍然會有一個問題,就像你可以在應用程序執行期間連接到第二個db一樣。所以,這種方式有效,但不推薦。
  • 第二種選擇是不使用Hibernate,而是使用純JDBC連接。這不能限制你的連接選項,給你一些自由,這就是爲什麼我強烈推薦這種方式。