2008-12-03 4 views
2

Existe-t-il des API JAVA pour l'interrogation d'une base de données.Base de données Java Poller?

Doit être capable de a) Être capable d'obtenir toutes les données d'une table pour commencer. b) Interrogez toutes les minutes configurables.

+0

Veuillez le rendre un peu plus clair:] –

Répondre

2

En principe, JDBC combiné avec la classe Timer devrait être suffisant pour répondre aux exigences que vous avez énoncées. Le Timer API page décrit comment planifier une tâche qui peut être déclenchée périodiquement. Le wikipedia page on Java Database Connectivity contient un exemple de code assez bon sur comment interroger toutes les données sur une table spécifique. Lier ces deux éléments ensemble devrait vous donner ce que vous voulez.

Il existe des moyens plus complexes d'obtenir ce que vous désirez, par exemple en utilisant Quartz comme Job Scheduler. Mais pour une application aussi simple, je m'en tiendrai probablement aux bibliothèques intégrées.

1

Techniquement, c'est ce que fait un bean entité. Donc, si vous en avez envie, lancez votre code dans un conteneur EJB :) Je suis à moitié sérieux: vous pouvez le configurer pour être très léger (Tomcat + OpenEJB par exemple), et ejb 3 ne sera pas rendre votre code dépendant de cette technologie. Cela éviterait d'écrire du code pour cette tâche.

Sun doc:

Un paramètre important pour le réglage en lecture seule haricots est la période de rafraîchissement, représentée par le déploiement entité descripteur rafraîchissement période en secondes. Pour les beans CMP , le premier accès à un bean charge l'état du bean. Le premier accès après la période d'actualisation recharge les données de la base de données. Toutes les utilisations suivantes du bean utilisent les données nouvellement actualisées (jusqu'à ce que une autre période de rafraîchissement se soit écoulée). Pour les haricots BMP, une méthode ejbLoad() dans une transaction existante utilise les données mises en cache à moins que la période de rafraîchissement a expiré (dans ce cas, le nouveau ejbLoad() appelle conteneur ).

Ce paramètre permet au composant EJB pour rafraîchir périodiquement son « instantané » de la base de données les valeurs qu'elle représente . Si la période de rafraîchissement est inférieure ou égale à 0, le bean est jamais actualisé à partir de la base de données (comportement par défaut si aucune période de rafraîchissement n'est donnée).