gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 08:23:13 25 4
gpt4 key购买 nike

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

  1. 我的 Java 应用程序应使用 JDBC 来检查某个表是否已填充。
  2. 如果不是,它应该等到插入一行。

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

我想到的一些想法是连续调用数据库来获取该行,或者定期(每半小时左右)调用数据库并检查该行是否可用。但我正在寻找类似监听器的东西,它可以做到这一点。

最佳答案

Informix DBMS 中没有任何工具可以在特定行到达表中时发出信号。

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

JDBC 协议(protocol)(以及一般的 SQL 协议(protocol))本质上是同步的;客户端发送请求并等待 DBMS 的答复。

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

如果您的轮询间隔需要亚秒级,那么平衡就会不同 - 工作会困难得多。

关于java - 如何检查具有特定值的特定行是否已插入数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9128004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com