【问题标题】:Java Database Poller?Java 数据库轮询器?
【发布时间】:2008-12-03 07:18:01
【问题描述】:

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

应该可以

a) 能够从表中获取所有数据以开始使用。
b) 每可配置的分钟轮询一次。

【问题讨论】:

  • 请说清楚一点:]

标签: java


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    太阳医生:

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

    此参数启用 EJB 组件定期刷新其 数据库值的“快照” 代表。如果刷新周期是 小于或等于 0,该 bean 是 从未从数据库中刷新( 没有刷新周期时的默认行为 已给出)。

    【讨论】:

      猜你喜欢
      • 2015-10-21
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      • 2011-01-16
      • 1970-01-01
      • 2012-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多