MySQL触发器或存储过程可以用Java编写吗?

时间:2011-03-22 13:37:20

标签: java mysql triggers procedures

我有两个数据库。像编辑,插入到一个的更改也需要对第二个进行,反之亦然。

实际上,一个数据库是旧的遗留数据库(具有非常糟糕的实体 - 关系结构)和用户当前使用的遗留应用程序前端。 第二个数据库是一个新建的,更好的重建遗产与一个单独的应用程序。前端。

我希望两个应用程序(分别访问旧数据库和新数据库)同时运行,以便用户可以选择使用这两个应用程序,并且可以在另一个应用程序中看到一个应用程序中的更改。

我想编写调用存储过程的触发器,这些触发器重构数据并将其放在相反的数据库中。

我的问题是:

  • 我的执行线是否应该是?我的意思是,triggers >call> stored procedures >call> database.
  • 可以用Java编写触发器/存储过程吗?
  • 那里有任何好的/推荐的提示,教程等等吗?

谷歌上有很多链接,但没有一个是有用的。我想知道MySQL和Java在MySQL触发器方面是否协同工作?有可能吗?有没有更好的方法来实现我的需求?

1 个答案:

答案 0 :(得分:2)

触发器是命名数据库对象。它们定义了某些数据库相关事件发生时数据库应采取的一些操作。它们是用SQL编写的。它们的执行对用户是透明的。您像往常一样编写Java JDBC代码,DBMS将在必要时自动执行适当的触发器。

mysql> delimiter //
mysql> CREATE TRIGGER insert_trigger BEFORE INSERT ON Customer
    -> FOR EACH ROW
    -> BEGIN
    -> UPDATE Customer SET Price=Price-10 WHERE CustomerGroup=32 and CityCode=11;
    -> END;
    -> //

This示例向您展示如何使您的触发器写入另一个数据库。注意自动增量属性。

我认为你应该忘记MySQL中的Java存储过程,但是你总是可以将业务逻辑移到你自己的Java程序中。