gpt4 book ai didi

java - 从数据库中获取事件

转载 作者:IT老高 更新时间:2023-10-28 21:03:30 25 4
gpt4 key购买 nike

我不太熟悉数据库以及它们在 CRUD 操作之外提供的功能。

我的研究使我找到了触发因素。基本上看起来触发器提供了这种类型的功能:

(from Wikipedia)

There are typically three triggering events that cause triggers to "fire":

  • INSERT event (as a new record is being inserted into the database).
  • UPDATE event (as a record is being changed).
  • DELETE event (as a record is being deleted).

我的问题是:当使用某种触发器语义更新/删除/插入记录时,数据库是否可以通过某种方式在 Java 中通知我(最好包括更改的数据)?

对于这个问题有什么替代解决方案?如何监听数据库事件?

我想这样做的主要原因是这样的场景:

我有 5 个客户端应用程序,它们都在不同的进程中/存在于不同的 PC 上。它们都共享一个公共(public)数据库(在本例中为 Postgres)。

假设一个客户更改了所有 5 个客户都“感兴趣”的数据库中的一条记录。我正在尝试想办法让客户“通知”更改(最好附上受影响的数据) 而不是他们每隔一段时间查询数据。

最佳答案

使用 Oracle,您可以在表上设置触发器,然后让触发器发送 JMS 消息。 Oracle 有两种不同的 JMS 实现。然后,您可以拥有一个使用 JDBC 驱动程序“监听”消息的进程。我已经使用这种方法将更改推送到我的应用程序与轮询。如果您使用的是 Java 数据库 (H2),您还有其他选择。在我当前的应用程序 (SIEM) 中,我在 H2 中有使用 JMX 发布更改事件的触发器。

关于java - 从数据库中获取事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/812233/

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