Domanda

Credo che qualsiasi programmatore che abbia avuto a che fare con richieste di database in un'applicazione GUI abbia riscontrato alcuni o tutti i seguenti problemi:

  • La tua GUI si blocca perché chiami livello di database all'interno dell'evento filo di spedizione
  • Quando hai più finestre / pannelli / jframe in cui l'utente può avviare una richiesta db, le prestazioni peggiorano perché non hai alcun controllo sui thread creati dall'utente
  • L'utente potrebbe essere in grado di bloccare l'applicazione e persino il database perché chiama qualsiasi azione molte volte prima che la prima azione sia terminata

Cosa vorrei sapere: esistono dei framework che gestiscono i requisiti di gestione di un set ordinato di azioni a esecuzione prolungata (incluso ma non limitato a chiamate al database, ad esempio calcoli) al di fuori del thread di invio degli eventi?

Nota: conosco SwingWorker ;-)

È stato utile?

Soluzione

Una cosa del genere dovrebbe essere trovata ad esempio in Netbeans. Vedi RequestProcessor. Ma in casi più semplici questo non è richiesto. L'ultima volta che ho bisogno di qualcosa come la pianificazione e il controllo dei thread ho semplicemente usato nuovi pacchetti di concorrenza inclusi in J5 (ho usato J6). Con le sue ExecutorFactory puoi semplicemente ottenere il controllo di base sulle attività. Puoi anche usare alcune code. Questo PDF può essere d'aiuto . Il PDF è scritto in lingua slovacca ma i lavoratori con attività singole / multiple sono scritti in Java;)

Altri suggerimenti

Gli oggetti nudi facilitano un modello di dominio pulito e hanno anche un livello di mappatura DB GUI 2 - http://www.nakedobjects.org/home/index.shtml

Dubito che troverai qualcosa di specifico per le richieste del database. È possibile provare a riutilizzare le librerie di pianificazione di attività generiche esistenti. Un esempio è l'API dei lavori Eclipse. Questo non dipende dall'IDE.

Vedi http://www.eclipse.org/articles/ Articolo-Concorrenza / lavoro-API.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top