如何检查新记录是否插入到java中的db

时间:2013-11-11 11:10:36

标签: java mysql timer listener

我需要检查是否已将新记录插入数据库。我正在创建监听器以连续轮询数据库,但是我需要检查新记录是否已插入新记录中的表或者我要获取该数据,否则无需从表中获取数据。 这是我的听众课程..

public class GetGpsDataListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        Timer timer = new Timer();
        timer.schedule(new MyTimerTask(), 1000, 1000);
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
    }
}

这是我的Timer课程..

public class MyTimerTask extends TimerTask {

    @Override
    public void run() {
        System.out.println("Inside run");
        // Here I will connect to database to check new record from table..
    }
}

1 个答案:

答案 0 :(得分:1)

如果您的应用程序正在执行所有插入操作,那么我认为我不会轮询数据库以查看是否已插入新记录。轮询数据库可能是资源密集型的,尤其是在表变大的情况下,通常意味着您需要在应用程序中保留一些状态以允许您查看已更改的内容。

当您的应用程序执行插入操作时,它将能够看到

  • 插入是否成功
  • 插入记录的ID是

我只是允许执行insert的代码与插件成功的单独类进行通信,插入记录的id是什么。单独的类可以做任何它需要做的事情。

如果这需要异步完成,您可以考虑将ID拉到队列并允许您的计时器任务读取它们。