Existe-t-il des cadres de traitement des demandes de base de données dans les applications swing?

StackOverflow https://stackoverflow.com/questions/143341

Question

Je pense que tout programmeur ayant traité des requêtes de base de données dans une application graphique a rencontré tout ou partie des problèmes suivants:

  • Votre interface graphique se fige parce que vous appelez couche de base de données à partir de l'événement thread d'expédition
  • Lorsque vous avez plusieurs fenêtres / panneaux / jframes dans lesquels l'utilisateur peut démarrer une demande de base de données, vos performances se dégradent car vous n'avez aucun contrôle sur les threads créés par votre utilisateur
  • L'utilisateur peut peut-être verrouiller l'application et même la base de données car il appelle une action plusieurs fois avant la fin de la première action

Ce que j'aimerais savoir: existe-t-il des frameworks qui gèrent les exigences de la gestion d'un ensemble ordonné de longues actions (y compris, mais sans s'y limiter, les appels à la base de données, par exemple les calculs) en dehors du thread d'envoi d'événements?

Remarque: je connais SwingWorker ;-)

Était-ce utile?

La solution

Une telle chose devrait être trouvée dans Netbeans par exemple. Voir RequestProcessor. Mais dans des cas plus simples, cela n’est pas nécessaire. La dernière fois que j’ai besoin de quelque chose comme la planification et le contrôle des threads, j’ai tout simplement utilisé les nouveaux packages de concurrence inclus dans J5 (j’ai utilisé J6). Avec ses ExecutorFactory-ies, vous pouvez simplement obtenir un contrôle de base sur les tâches. Vous pouvez également utiliser certaines files d'attente. Ce fichier PDF peut vous aider . Le PDF est écrit en slovaque, mais les tâches simples / multiples y sont écrites en Java;)

Autres conseils

Les objets nus facilitent la création d'un modèle de domaine propre. Ils possèdent également une couche de mappage de bases de données GUI 2 - http://www.nakedobjects.org/home/index.shtml

Je doute que vous trouviez quelque chose de spécifique pour les demandes de base de données. Vous pouvez essayer de réutiliser les bibliothèques de planification de tâches génériques existantes. Un exemple est l’API des emplois Eclipse. Cela ne dépend pas de l'IDE.

Voir http://www.eclipse.org/articles/ Article-Concurrency / jobs-api.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top