簡體   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