2017-05-27 10 views
0

Ich versuche, eine Demo zu erstellen, aber ich bin nicht immer, wie sie umgesetzt werden kann jede Stelle mir helfen, es zu konfigurieren.Frühling Stiefel mit Hibernate

Ich benutze Spring Boot, und überwintern.

Ich habe Anforderung wie, zuerst werde ich db Login-Informationen über Formular, und dann werde ich es in jede Datei oder eine andere Quelle speichern.

Jetzt habe ich Login-Detail der Datenbank, Jetzt erlaube ich Hibernate, mit meiner Datenbank zu verbinden und Tabellen zu erstellen, und andere Abfrage wird ausgeführt.

aber ich bin vor Problem mit Hibernate, als Projekt beginnt, es zeigt mir Fehler

Verursacht durch: java.sql.SQLException: Zugriff verweigert für User ‚root‘ @ ‚localhost‘ (Kennwort: JA)

, weil wenn das Projekt gestartet wird lädt es Ruhezustand, um Tabellen und Strukturen zu erstellen.

aber ich möchte diese Aufgabe ausführen, nachdem Datenbank-Login-Detail vom Benutzer über ein Formular abgerufen.

bedeutet, ich möchte, dass das Projekt ohne Login Detail der Datenbank beginnen soll, und überwintern auch nicht einen Fehler wirft.

Was ich tun soll, um dieses Problem zu lösen.

+0

was Benutzernamen und das Passwort Ihres db ?? – y2k

+0

Ich denke, dass Sie sich mit diesem Ansatz sehr schwer tun. Darf ich den Grund fragen, warum Sie keine Anmeldeinformationen in den Anwendungseigenschaften festlegen möchten? Sie arbeiten gegen das Framework. Vielleicht sollte dies nicht mit dem Frühling umgesetzt werden? –

+0

Hay y2k! Ich habe keinen Benutzernamen und kein Passwort, wenn ich starte, es wird vom Benutzer festgelegt. –

Antwort

0

Ich glaube nicht, dass es möglich ist, Db-Verbindung nach dem Start der Anwendung zu konfigurieren. Aber ich sehe 2 mögliche Lösungen:

  • Erstens ist, dass Sie faul Initialisierung von DataSource und EntityManager Bohnen benötigen. Also müssen Sie sie im Hand-Modus konfigurieren und mit @Lazy annotieren und sie aufrufen, nachdem Sie den Benutzernamen und das Passwort von db erhalten haben. Aber trotzdem ... werden Sie ein Problem haben, als könnten Sie während der Ausführung der Anwendung eine Verbindung zur zweiten db herstellen. Also, dieser Weg funktioniert, aber es wird nicht empfohlen.
  • Die zweite Option besteht darin, Hibernate nicht zu verwenden und stattdessen eine reine JDBC-Verbindung zu verwenden. Dieser kann Ihre Verbindungsmöglichkeiten nicht einschränken und gibt Ihnen eine gewisse Freiheit und deshalb wird dieser Weg von mir dringend empfohlen.
Verwandte Themen