Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.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中检查新记录是否插入到db中_Java_Mysql_Timer_Listener - Fatal编程技术网

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

如何在java中检查新记录是否插入到db中,java,mysql,timer,listener,Java,Mysql,Timer,Listener,我需要检查是否已将新记录插入数据库。我正在创建侦听器,以在一定延迟的情况下持续轮询数据库。我需要检查是否插入了新记录,或者是否已插入到表中。在新记录出现时,我希望获取该数据,否则无需从表中获取数据。 这是我的听众课 public class GetGpsDataListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce)

我需要检查是否已将新记录插入数据库。我正在创建侦听器,以在一定延迟的情况下持续轮询数据库。我需要检查是否插入了新记录,或者是否已插入到表中。在新记录出现时,我希望获取该数据,否则无需从表中获取数据。 这是我的听众课

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) {
    }
}
这是我的计时课

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..
    }
}

如果您的应用程序正在执行所有插入操作,那么我不认为我会轮询数据库以查看是否插入了新记录。轮询数据库可能会占用大量资源,尤其是当表变大时,这通常意味着您需要在应用程序中保留一些状态,以便查看发生了哪些更改

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

  • 插入是否成功
  • 插入记录的id是什么
我只允许执行插入的代码与一个单独的类通信,说明插入成功,以及插入记录的id是什么。单独的类可以做它需要做的任何事情


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

因此,您需要知道是否已经插入了新的记录,以及这些新记录是什么?您是只对一个表的插入感兴趣,还是对多个不同的表的插入感兴趣?以及表中插入的内容;您的应用程序,或其他应用程序?仅在一个表和一个应用程序中..您可以保留主键值并检查它您的更新查询行返回true false,这取决于更新是否成功您的问题是什么?