繁体   English   中英

如何检查是否已在数据库中插入具有某些值的特定行

[英]How to check if a specific row with certain values has been inserted in the Database

我正在使用Informix DB。 这个问题可能与一个特定的数据库无关。 但是我想知道如何用Java不断地探究数据库,并检查是否已将某行添加到数据库的表中。 基本上,流程是:

  1. 我的Java应用程序应使用JDBC检查是否填充了某个表。
  2. 如果否,则应等待插入一行。

我的问题是如何让Java知道行插入。 我不希望添加任何触发器或任何东西,但是在纯Java中,能够检查是否添加了该行。

我想到的一些想法是连续为该行调用DB,或者定期(每半小时左右)调用DB并检查该行是否可用。 但是我正在寻找的是像Listener这样的东西。

Informix DBMS中没有工具来通知特定行何时到达表中。

好吧,我这么说,但是有一个DB-Cron工具可以定期执行任务(在服务器内部),并且可以想象地安排一个任务以轮询数据以查看其是否到达并发送消息(以某种方式发送) )表示它已经拥有。 这将是不平凡的,尤其是表明它已经到达的部分。

JDBC协议(通常和SQL协议)本质上是同步的。 客户端发送请求并等待DBMS的答复。

因此,务实的是,如果延迟时间为半小时,则可以创建一个管理任务来处理该处理(如果对您至关重要,则可以编写一个Java UDR由服务器在服务器中执行),或者可以安排Java(客户端)程序定期进行轮询,以查找所需的信息是否存在。 即使有中等数量的进程轮询单独的值(甚至是相同的值),半小时的延迟也不会增加任何压力。 另一方面,通常您会尽量避免轮询。 您需要在对特殊数据到达的响应与常规系统响应之间取得平衡。 总体而言,一般系统的响应能力更为重要,因此,请保持尽可能大的轮询间隔。

如果您的轮询间隔需要小于一秒,那么余额将有所不同-这项工作会困难得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM