当前位置: 首页 > 面试题库 >

从数据库获取事件

佟英武
2023-03-14
问题内容

我对数据库及其在CRUD操作之外提供的功能不是很熟悉。

我的研究使我 引人注目 。基本上,触发器似乎提供了这种类型的功能:

(来自维基百科)

通常,有三个触发事件导致触发器“触发”:

  • INSERT事件(将新记录插入数据库中)。
  • UPDATE事件(因为记录正在更改)。
  • DELETE事件(因为一条记录正在被删除)。

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

该问题可能有一些替代解决方案?如何收听数据库事件?

我要这样做的主要原因是这样的情况

我有5个客户端应用程序,它们全部在不同的进程中/存在于不同的PC中。它们都共享一个公共数据库(在这种情况下为Postgres)。

可以说一个客户更改了数据库中所有5个客户都感兴趣的记录。我正在尝试考虑“通知”客户更改的方法(最好是附有受影响的数据),而不是他们以一定的间隔查询数据。


问题答案:

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



 类似资料:
  • 本文向大家介绍node.js从数据库获取数据,包括了node.js从数据库获取数据的使用技巧和注意事项,需要的朋友参考一下 本文需要用node.js做一个从Sqlserver获取数据并显示到页面上的小功能,下面就为大家分享: app.js: 接下来就直接在页面中使用get方式请求即可,当然post方式也是类似原理。 还有我发现textarea控件在改变其text和html属性的时候,value还保

  • 问题内容: 我已经搜索了许多网站,但没有遇到任何从单个数据库获取表名的细节的代码或教程。 假设我有4个数据库,并且我想要数据库中所有表的名称,我可以使用什么查询? 问题答案:

  • 问题内容: 我有2种情况,我要在codeigniter中提取同一表的全部数据和行总数,我想知道那是一种方法,可以从中获取行总数,整个数据和3个最新插入的记录通过一个代码在同一张桌子上 两种情况的控制器代码如下(尽管我分别使用不同的参数将其应用于每种情况) 1)从codeigniter中的表中获取全部数据 型号代码 查看代码 2)在Codeigniter中从表中获取行数 查看代码 问题答案: 您只能

  • 问题内容: 我正在尝试编写一个程序,该程序将通过NotesSQL驱动程序将整个Lotus Notes数据库转储到文件中。我通过jdbc:odbc连接并有 我可以执行选择并从Lotus Notes数据库获取数据 这是代码 是否有更好的方法通过NotesSQL连接到Lotus Notes数据库?因为使用我的代码,我只获得名称的值… 问题答案: 我知道您正在尝试使用JDBC和NotesSQL。但是,根据

  • 我有一个辅助项目网站,人们可以在那里评论东西,现在我需要显示用户的评论和评论者的用户名。问题是,我无法获得登录用户的用户名。 评论示例: 1) 评论人-Shelo 测试评论 2) 评论人-ProGa 测试评论2 现在的问题是,如果我试图获取“当前登录”用户的用户名,当用户登录时,两条评论都会有相同的用户名 上面的代码示例是您当前登录用户的方式。因此,如果我使用这段代码,并尝试通过

  • 我正在尝试获取我的用户名,并在应用程序打开时向他/她问好。但我无法根据某个用户的uid获取数据。当我运行应用程序时,祝酒词从未真正出现。 数据库结构 密码