Frage

Ich glaube, jeder Programmierer, der in einer GUI-Anwendung wurde mit Datenbank-Anfragen zu tun hat in einige oder alle der folgenden Probleme auftreten:

  • Ihre GUI friert, weil Sie rufen Datenbankschicht aus dem Ereignis Dispatch Thread
  • Wenn Sie mehr Fenster / Platten / jframes, wo Benutzer eine db Anfrage starten können Ihre Leistung verschlechtert, weil Sie keine Kontrolle haben nicht über die Fäden Ihre Benutzer erstellt
  • Benutzer in der Lage sein, die Anwendung zu sperren und auch die Datenbank, weil er jede beliebige Aktion oft nennt, bevor die erste Aktion
  • fertiggestellt

Was ich möchte wissen, über sich selbst:? Gibt es Rahmenbedingungen, die die Anforderungen für die Abwicklung einer geordneten Menge von langen laufenden Aktionen (einschließlich, aber nicht beschränkt auf Datenbankaufrufe, dh Berechnungen) außerhalb des Event Dispatch Thread behandeln

Hinweis: Ich kenne Swingworker; -)

War es hilfreich?

Lösung

So etwas sollte in Netbeans zum Beispiel gefunden werden. Siehe Request. Aber in einfacheren Fällen ist dies nicht erforderlich. Zuletzt muss ich so etwas wie Thread-Scheduling und Kontrolle ich einfach neue Concurrency-Pakete in J5 enthalten verwendet (I verwendet J6). Mit seinen ExecutorFactory-sie Jahren können Sie einfach grundlegende Kontrolle über die Aufgaben erreichen. Sie können auch einige Warteschlangen verwenden. Diese PDF helfen können. Die PDF-Datei wird in der slowakischen Sprache geschrieben, aber die Single / Multiple Aufgabe Arbeiter gibt es in Java geschrieben;)

Andere Tipps

Naked Objects ermöglicht ein sauberes Domain-Modell und sie haben auch eine GUI 2 DB-Mapping Schicht - http://www.nakedobjects.org/home/index.shtml

Ich bezweifle, dass Sie etwas Bestimmtes für Datenbankanforderungen finden. Sie können versuchen, den bestehenden generischen Aufgabenplanung Bibliotheken wiederzuverwenden. Ein Beispiel ist die Eclipse-Jobs API. Dies ist nicht von der IDE ab.

Siehe http://www.eclipse.org/articles/ Artikel-Concurrency / jobs-api.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top