Java数据库轮询器?

时间:2008-12-03 07:18:02

标签: java

是否有用于轮询数据库的JAVA API。

应该可以 a)能够从表中获取所有数据。 b)每隔一段时间对其进行轮询。

2 个答案:

答案 0 :(得分:2)

原则上,结合Timer类的JDBC应该足以处理你提出的要求。

Timer API page描述了如何安排可以定期触发的任务。 wikipedia page on Java Database Connectivity包含一个非常好的代码示例,介绍如何查询特定表上的所有数据。将这两个项目捆绑在一起应该可以满足您的需求。

有更复杂的方法可以实现您的需求,例如使用Quartz作为Job Scheduler。但对于这样一个简单的应用程序,我可能会坚持使用内置库。

答案 1 :(得分:1)

从技术上讲,这就是实体bean的作用。

所以,如果您愿意,请在EJB容器中运行您的代码:)我是半严肃的:您可以将其配置为非常轻量级(例如Tomcat + OpenEJB),而ejb 3将不会您的代码依赖于该技术。这样可以避免为此任务编写任何代码。

Sun doc:

  

调整的重要参数   只读bean是刷新周期,   由部署代表   描述符实体   刷新周期,在秒。对于CMP   bean,第一次访问bean   加载bean的状态。首先   刷新期后访问   从数据库重新加载数据。   bean的所有后续使用都使用   新刷新的数据(直到   另一个刷新周期过去了)。对于   BMP bean,一个ejbLoad()方法   现有的交易使用   除非刷新周期,否则缓存数据   已过期(在这种情况下,   容器再次调用ejbLoad()。

     

此参数启用EJB   组件定期刷新它   数据库的“快照”对其进行评估   代表。如果刷新周期是   小于或等于0,豆是   永远不会从数据库刷新(   默认行为,如果没有刷新周期   给出了。)