gpt4 book ai didi

java - 监控来自不同应用程序的 MySQL 插入

转载 作者:IT王子 更新时间:2023-10-29 00:30:57 26 4
gpt4 key购买 nike

我目前有一个网络服务,它使用 Hibernate 在 mysql 数据库中插入信息。其中一些信息需要由另一个“导入”应用程序处理。我不想从网络服务触发这个应用程序。所以网络服务不依赖于网络服务,反之亦然。

有没有办法从“导入”应用程序“监听”数据库中的更改(特别是:插入),然后开始执行操作。我查看了触发器,但它们似乎只适用于应用程序的 Hibernate Session 中的更改,而不适用于“外部”更改。

编辑*

简而言之,我想要的答案;是否可以从不改变数据库/表本身的 Java 应用程序监视对 mysql 数据库/表(来自任何来源)的更改

赏金更新*

我会将赏金奖励给能够向我解释如何使用 Java 应用程序监控对 MySQL 表/数据库所做的更改的人。监视更改的 Java 应用程序不是应用任何更改的应用程序。更改的来源可以是任何东西。

最佳答案

我认为你可以很容易地实现这样的目标,假设你不介意在你的数据库上创建一些额外的表和触发器,并且监控 Java 应用程序必须轮询数据库而不是专门接收触发器。

假设您要监控的表是这样的:

CREATE TABLE ToMonitor ( id INTEGER PRIMARY KEY, value TEXT );

然后您创建一个表来跟踪更改,以及一个填充该表的触发器:

CREATE TABLE InsertedRecords( value TEXT );
CREATE TRIGGER trig AFTER INSERT ON account
FOR EACH ROW INSERT INTO InsertedRecords( value ) VALUES ( NEW.value );

这将导致 InsertedRecords 表填充 ToMonitor 中发生的每个插入。

然后你只需要将你的监控应用程序设置为定期SELECT * from InsertedRecords,采取适当的行动,然后从InsertedRecords中清除记录

编辑:如果您不介意进行一些 C/C++ 编码,一个小的替代方案是 follow the instructions here创建一个自定义 SQL 函数来触发您的监控应用程序采取行动,然后只需从您创建的触发器中调用该 SQL 函数。

关于java - 监控来自不同应用程序的 MySQL 插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11458091/

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