Java,更新oracle数据库时的触发器功能

时间:2014-07-21 13:37:11

标签: java oracle

目前,我正在使用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数据库的新信息?是否有可能让听众坐在那里触发一旦表格更新后我想要它做什么?

1 个答案:

答案 0 :(得分:0)

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

This link似乎证明我的记忆并不像我想的那么糟糕。

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

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