【问题标题】:Java, trigger function when oracle database is updated [duplicate]Java,oracle数据库更新时的触发功能[重复]
【发布时间】:2014-09-12 00:58:32
【问题描述】:

目前我正在使用 JDBC 模板来查询数据库中的信息。我不断地 ping oracle DB 来检查一个表是否已经更新,如果有,那么我运行一个函数,如果没有,然后我稍等一下,然后再次 ping 它。

    ReportsDao rDao = new ReportsDao();
    while(true)
    {
        List<ReportRequest> rr = rDao.selectAll();
        for (ReportRequest r: rr)
        {
            if(!r.getDone())
            {
                //do stuff
            }
        }
        try {
            Thread.sleep(10000);
        } catch(InterruptedException ex) {
            Thread.currentThread().interrupt();
        }
    {

所以我的问题是,我怎样才能避免这种不断 ping 数据库以获取新信息的情况?是否有可能让一个听众坐在那里触发我希望它在表格更新后执行的操作?

【问题讨论】:

    标签: java oracle


    【解决方案1】:

    我在大学时听说当时 Oracle 提供了一种在服务器端执行 Java 代码的方法。

    This link似乎证明了我的记忆力并没有我想象的那么差。

    考虑到这一点,您可以在 db-client 端实现一个套接字侦听器,并从 Oracle 服务器上的 socket-client 发送一个由 db 事件触发的通知事件。 正如您在我上面链接的文档中可能发现的那样,是否可以将 Java 类方法注册为数据库服务器中的过程。

    如果您不想使用套接字,可以尝试RMI

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-22
      • 2017-04-08
      • 1970-01-01
      • 1970-01-01
      • 2012-08-31
      • 2012-09-27
      • 1970-01-01
      • 2020-05-18
      相关资源
      最近更新 更多