如何将数据库插入行事件捕获到使用 Spring web mvc 构建的 web 应用程序中?
how to Capture database insert row event into a web application built using Spring web mvc?
我有一个要求,我需要在 Web 应用程序的 table 中捕获一个插入行事件,以通知用户最新添加的记录。
场景
应用程序 A1 不断将记录泵入数据库 D1。应将任何新记录插入数据库 D1.
通知 Web 应用程序 W1
Web 应用程序是使用 spring-web-mvc,JPA 持久性开发的。我查看了使用 jpa 和 hibernate 提供的 entitylistner 事件的选项,但是如果同一个应用程序执行插入操作,这会受到限制,但情况并非如此。
你能帮帮我吗,我该如何解决这个问题?
根据您的要求,有多种方法可以实现您想要的效果。
由于您没有提供具体要求,让我就如何实现它提出一些想法。
1.使用数据库触发器:您可以将触发器添加到有问题的table。当 D1 将记录插入此 table 时,使用插入触发器可以将记录的 ID 添加到通知 table。您的应用程序 W1 可能有一个计划任务从通知 table 中读取记录。假设它每 5 秒运行一次并检查那里是否有新记录。如果是这样,它会读取它们,处理它们,
然后从通知中删除记录 table.
2。使用队列:如果记录只能通过应用程序 D1 插入到有问题的 table 中,因此应用程序 D1 是此 table 中记录的唯一入口点,那么您使用消息队列。当 D1 插入新记录时,您将包含插入记录详细信息的消息发送到消息队列。应用程序 W1 只是该队列的订阅者。一旦记录到达,W1 从队列中读取它们并处理它们。
3。使用 Web 服务: 再一次,如果记录只能通过 D1 插入,则 W1 可以公开一个 Web 服务,以便在创建记录时得到通知。因此,当 D1 创建新记录时,它也可以调用此 Web 服务并让 W1 知道刚刚插入了一条新记录,然后 W1 可以相应地采取行动。
并且可能有更多替代方法可以做到这一点。
我有一个要求,我需要在 Web 应用程序的 table 中捕获一个插入行事件,以通知用户最新添加的记录。
场景
应用程序 A1 不断将记录泵入数据库 D1。应将任何新记录插入数据库 D1.
通知 Web 应用程序 W1Web 应用程序是使用 spring-web-mvc,JPA 持久性开发的。我查看了使用 jpa 和 hibernate 提供的 entitylistner 事件的选项,但是如果同一个应用程序执行插入操作,这会受到限制,但情况并非如此。
你能帮帮我吗,我该如何解决这个问题?
根据您的要求,有多种方法可以实现您想要的效果。
由于您没有提供具体要求,让我就如何实现它提出一些想法。
1.使用数据库触发器:您可以将触发器添加到有问题的table。当 D1 将记录插入此 table 时,使用插入触发器可以将记录的 ID 添加到通知 table。您的应用程序 W1 可能有一个计划任务从通知 table 中读取记录。假设它每 5 秒运行一次并检查那里是否有新记录。如果是这样,它会读取它们,处理它们, 然后从通知中删除记录 table.
2。使用队列:如果记录只能通过应用程序 D1 插入到有问题的 table 中,因此应用程序 D1 是此 table 中记录的唯一入口点,那么您使用消息队列。当 D1 插入新记录时,您将包含插入记录详细信息的消息发送到消息队列。应用程序 W1 只是该队列的订阅者。一旦记录到达,W1 从队列中读取它们并处理它们。
3。使用 Web 服务: 再一次,如果记录只能通过 D1 插入,则 W1 可以公开一个 Web 服务,以便在创建记录时得到通知。因此,当 D1 创建新记录时,它也可以调用此 Web 服务并让 W1 知道刚刚插入了一条新记录,然后 W1 可以相应地采取行动。
并且可能有更多替代方法可以做到这一点。