当一条记录插入mysql数据库时如何调用java方法

时间:2011-07-04 11:29:36

标签: java mysql

请告诉我,当在mysql数据库中插入记录时,可以调用java方法或struts动作类 Actuall我的问题是我有2个数据库(都是mysql数据库,即db1和db2)在两个不同的位置运行。我需要它们之间的通信。当同时在db1中的X表中插入一条记录时,必须插入一些数据db2中的Y表取决于db2中插入的数据,某些数据必须插入db1中的Z表中。

Actuall我的项目是病人护理项目 对于一组患者,有一名护理人员 对于每个患者,一个嵌入按钮就在那里。 db2数据库中存在患者详细信息和嵌入按钮之间的映射以及相应的护理人员 当患者按下嵌入按钮时嵌入的信息被插入到db1中 并且为了向护理人员发送移动消息,我必须根据db1中插入的​​嵌入信息获取db2中的数据,因为患者和护理员映射在db2中

businesslogic与db1通信在vc ++中编写

businesslogic与db2通信在java中写入

所以我需要db1和db2之间的通信

使用的技术

java,struts 1.2

数据库:mysql

4 个答案:

答案 0 :(得分:3)

我认为不可能从db insert主动触发java代码。我们所做的恰恰相反:

  • 当插入发生时,我们将rowid写入专用表
  • 我们有一个定期运行的Java作业,并检查该表是否有新条目

你不应该在网络环境中做任何这样的事情,所以在这种情况下忘记struts!

答案 1 :(得分:0)

您可以让java进程定期查询表以检查新记录。更好的解决方案是让数据库触发器执行您需要的业务逻辑(尽管您不能直接调用struts操作)。如果您可以提供有关插入行后需要执行的业务逻辑的更多详细信息,我们可以提供更清晰的设计。

答案 2 :(得分:0)

即使可以使用另一个Struts动作(因为它是一个可以实例化为SomeAction action = new SomeAction()的简单POJO类),我不会推荐它有几个原因:

  • 您必须将各种Struts配置传递给操作才能工作。
  • 处理ActionForward回复。

我的建议是将您的业务逻辑放在一个服务中,您可以将相同的数据传递给2个数据库,或者具有理解数据需要记录到2个数据库的策略。

答案 3 :(得分:0)

Here's an extension for MySQL(UDF)允许从MySQL执行其他程序。

如何使用它应该相对简单。我不知道您的应用程序的细节,但您可以创建一个调用程序的触发器,并传递建立数据库通信所需的某些参数。