Ich arbeite an meinem Problem für eine sehr lange Zeit und ich kann keine richtige Lösung für mein Problem finden.Spring Boot - Mehrere Datenbankzugriff (MYSQL)
Ich brauche sequentiellen Zugriff auf verschiedene Datenbanken. Ich habe versucht, den Link zu den Datenbanken zu ändern, wie Sie im folgenden Code sehen können.
public static void changeDB(String dbname) throws IOException{
File f = new File("application.properties");
if (f.exists()) {
f.delete();
}
f.createNewFile();
System.out.println("gelöscht");
FileWriter fw = new FileWriter("application.properties");
BufferedWriter bw = new BufferedWriter(fw);
String dbchanger = "spring.datasource.url = jdbc:mysql://localhost:3306/kamis" + dbname;
bw.write("server.port = 8000");
bw.write("\n");
bw.write(dbchanger);
bw.write("\n");
bw.write("spring.datasource.username=root");
bw.write("\n");
bw.write("spring.datasource.password=");
bw.write("\n");
bw.write("spring.datasource.driver-class-name = com.mysql.jdbc.Driver");
bw.write("\n");
bw.write("spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect");
bw.write("\n");
bw.write("spring.jpa.hibernate.ddl-auto=update");
bw.write("\n");
bw.write("spring.devtools.livereload.enabled=true");
bw.close();
System.out.println("neu erstellt");
}
Dies funktioniert in gewisser Weise bisher. Das Problem ist, dass die Anwendung neu geladen werden muss, um die Änderungen aus meiner application.properties zu lesen, um eine Verbindung mit der anderen Datenbank herzustellen, was für mich keine wirkliche Lösung ist, da die Anwendung neu gestartet wird. Es muss auch dynamisch veränderbar sein, weil ich mit mehr als 30 Datenbanken arbeite.
Vielleicht können Sie mir helfen, herauszufinden, wie Sie es neu laden oder vielleicht geben Sie mir eine passendere Lösung für mein Problem.
Vielen Dank im Voraus. Kai
ich mit Ihnen dort zustimmen. Vielleicht habe ich vergessen zu erwähnen, dass jeder Benutzer eine neue Datenbank erstellen kann, wenn er einen neuen Kanal für mein Programm erstellt und dieser für ungefähr 100-200 Personen gleichzeitig laufen soll. Die Lösung, die Sie mir geben, dass ich diese Dinge nicht für jeden schreiben kann. – Kai
Die Antwort wurde aktualisiert. – StanislavL
Klingt gut an erster Stelle. Hast du ein Beispiel oder eine Seite, wo ich mehr darüber lesen kann? Danke – Kai