Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数据库如何成为程序的可观察对象_Java_Asp Classic - Fatal编程技术网

Java 数据库如何成为程序的可观察对象

Java 数据库如何成为程序的可观察对象,java,asp-classic,Java,Asp Classic,根据我对“观察者可观察”模式的了解,有人能告诉我是否有任何方法不需要在编程语言中创建一个可观察对象,但是数据库(其中我们正在观察的表)自己告诉可观察对象数据库中有变化,然后那个可观察的通知所有的观察者。这样就不会有程序每次都检测数据库。使用DB触发器 根据作为存储过程的数据库,您很可能可以从那里向应用程序提供的端口发出HTTP请求 但问题是:您真的需要DB级别的观察者吗?因为这是一种非常糟糕的做法,您不能编写一个服务前端并在该级别上实现侦听/观察吗?有不同的可能性,例如,从Oracle可以从触发

根据我对“观察者可观察”模式的了解,有人能告诉我是否有任何方法不需要在编程语言中创建一个可观察对象,但是数据库(其中我们正在观察的表)自己告诉可观察对象数据库中有变化,然后那个可观察的通知所有的观察者。这样就不会有程序每次都检测数据库。

使用DB触发器

根据作为存储过程的数据库,您很可能可以从那里向应用程序提供的端口发出HTTP请求


但问题是:您真的需要DB级别的观察者吗?因为这是一种非常糟糕的做法,您不能编写一个服务前端并在该级别上实现侦听/观察吗?

有不同的可能性,例如,从Oracle可以从触发器/SP启动Java程序/代码。其他数据库中可能也有类似的功能。但这取决于你想用这个变化做什么

通常,应用程序应该查询数据库的当前状态,并确定如何通知用户预期状态和观察到的状态之间的不一致。在我看来,总是维护db的当前视图会有太多开销

如果你想做一些事情,如发送电子邮件,为某些特定的行动。。。也许一个程序或存储过程的触发器就是解决方法。如果要更新数据库的其他部分,请将其保存在db代码中


我想我想说的是,取决于你的目标是什么。。。可观察模式可能是也可能不是最好的方法

数据库触发器加上特定于数据库的呼叫/通知观察员的功能?@Ryan:你能提供更多细节吗?即如何通知听众?