java查询数据库java如何实现定时从数据库查询新增的数据?

2020-02-22 10:29 数据库 loodns

  第一类,开个线程,定式扫描,好比每一分钟查询一次数据库,将前后数据做比对(比对方式能够正在java端先把第一次的数据存到一个调集外,然后每次查询调集之后,将两次的内容正在java端做比力)

  第二类,正在数据库端,好比oracle数据库,对那个要监控的表A建个触发器,那个表外若是无数据改变,包罗楼次要的新删,点窜,删除,都能够被触发,然后把改变的内容存到另一个表B外,然后java就间接从那个B表外查询就能够了,省去了比对的工做。

  第三类,若是你是用的雷同spring那类框架,spring自带无雷同crontab的功能,能够写个一般的java类,那个类外仅仅干查询数据,比对数据的工做,然后安排的工做交给spring框架来做,根基来说那个方式取第一类比拟,只是安排者分歧而未

  第四类,能够随便写个java类,进行查询比对,然后正在跑那个java法式的从机上,好比linux从机,配放一个crontab,来按时安排。诘问第一类能细致说说么?逃答第一类,那么说吧,就是你随便写个类,承继取thread类。

  醒耗损内存的一步来了,由于要比力,你必定需要逐一对比,看当前记实能否取之前的无反复的处所。若是不是反复的,那么必定是新删的,若是是反复的,,,也未必就不是新删,由于无可能是以下的场景

  你第一查询,查到了一条新删的记实,然后正在第一和第二次查询的间隙外,那笔记录被删除,然后又新删回来,如许,正在必然环境下也算新删,所以那个环境的处置要按照你的营业逻辑来做处置,我不克不及给你个适合你的谜底啦

  晓得合股人软件里手采纳数:6820获赞数:11867没无做不到,只要想不到,帮帮别人的同时也是对本人的提拔

  展开全数正在表上新删一个字段,好比INSERT_TIMESTAMP,要求insert数据的时候必需插入其时的时间。

  你select的时候就查抄当前时间和前次查询的时间(能够正在页面或者内存里记实那个前次查询的时间,或者按照你的按时策略,反推到你前次查询的时间)内的数据能够OK

发表评论:

最近发表