2011-09-06 28 views

回答

0

请尝试直接使用Database Trigger代替。

检查这个问题有关getting events in java from Database

+0

你是什么意思? – ed0

+0

@ ed0 U可以在表上创建更改触发器。当发生变化时,你的触发器将被通知,你可以执行任何存储过程或sql –

+0

事情是我想让线程从数据库接收他们的工作,例如,如果表中的某个字段读取某个特定的进程在Java方面是运行,当它完成它更新数据库完成。我想运行的进程不能由存储过程执行。它只能发生在Java端 – ed0

0

如果你想监控表(在数据库中)和修改也可在数据库,那么你真的应该考虑的触发器。

简而言之,触发器是一种程序,可以在表格上的BEFORE或者AFTER之后自动运行。您可以监视UPDATE,INSERT或DELETE事务,然后进行操作。

这里是Simple tutorial on Oracle Triggers

+0

事情是我想让线程从数据库接收他们的工作,例如如果某个领域在表中读取可用的某一特定进程在Java端运行,当它完成时它将db更新为完成 – ed0

1

如果你只是想在东西在数据库中已经改变了客户端应用程序通知,你需要在应用程序本身对反应(使触发器是不是一个选项),你可以使用Oracle的更改通知。

为了做到这一点,您需要在JDBC驱动程序中注册一个侦听器,并指定应该监视的“结果集”。只要数据库中发生变化,该监听器就会被调用。

以了解如何工作的,请参阅手册:

http://download.oracle.com/docs/cd/B28359_01/java.111/b31224/dbmgmnt.htm#CHDEJECF

+0

如何处理非oracle dbs? –

+0

我知道的唯一一个类似的PostgreSQL有PostgreSQL和LISTEN/NOTIFY概念:http://www.postgresql.org/docs/current/static/sql-listen.html(它也可以通过JDBC获得) –

相关问题