G
Guest
Gast
Hallo,
ich programmiere derzeit eine Medienbibliothek, um meine MP3-Dateien zu archivieren. Im Moment habe ich ein Verzeichnis mit ca. 5000 Files, welches ich in ein Array auslese und anschließend zur Weiterverarbeitung in eine Schleife schicke. In jedem Schleifendurchlauf schaue ich per SELECT, ob die entsprechende Datei schon in der Datenbank ist, wenn nicht, dann erzeuge ich den entsprechenden Eintrag mit einem INSERT.
Soweit so gut. Da das ganze nun etwas länger dauert, habe ich mir mit Swing eine ProgressBar gebastelt, und den Code für die Datenbankzugriffe in einen extra Thread ausgelagert, da ja ansonsten Swing blockiert. Das funktioniert auch erstmal alles soweit.
Jetzt habe ich aber das Problem, das der Main-Thread, der auch dafür zuständig ist, die Datenbank-Connection wieder zu schließen, ja parallel weiterläuft. Spätestens nach der 30. Abfrage wird diese Stelle erreicht, und ich bekomme eine Exception, das die Verbindung zur Datenbank nicht mehr existiert.
Leider sind meine Kenntnisse, was Threads angeht, diesbezüglich nicht hinreichend, ich brauche im Prinzip einen Mechanismus, um den Main-Thread solange warten zu lassen, bis alle Anfragen an meine DB durch sind.
Könnt ihr mir da weiterhelfen?
Wäre euch sehr dankbar, da ich im Moment nicht weiter weis!
Viele Grüsse,
Christian
ich programmiere derzeit eine Medienbibliothek, um meine MP3-Dateien zu archivieren. Im Moment habe ich ein Verzeichnis mit ca. 5000 Files, welches ich in ein Array auslese und anschließend zur Weiterverarbeitung in eine Schleife schicke. In jedem Schleifendurchlauf schaue ich per SELECT, ob die entsprechende Datei schon in der Datenbank ist, wenn nicht, dann erzeuge ich den entsprechenden Eintrag mit einem INSERT.
Soweit so gut. Da das ganze nun etwas länger dauert, habe ich mir mit Swing eine ProgressBar gebastelt, und den Code für die Datenbankzugriffe in einen extra Thread ausgelagert, da ja ansonsten Swing blockiert. Das funktioniert auch erstmal alles soweit.
Jetzt habe ich aber das Problem, das der Main-Thread, der auch dafür zuständig ist, die Datenbank-Connection wieder zu schließen, ja parallel weiterläuft. Spätestens nach der 30. Abfrage wird diese Stelle erreicht, und ich bekomme eine Exception, das die Verbindung zur Datenbank nicht mehr existiert.
Leider sind meine Kenntnisse, was Threads angeht, diesbezüglich nicht hinreichend, ich brauche im Prinzip einen Mechanismus, um den Main-Thread solange warten zu lassen, bis alle Anfragen an meine DB durch sind.
Könnt ihr mir da weiterhelfen?
Wäre euch sehr dankbar, da ich im Moment nicht weiter weis!
Viele Grüsse,
Christian