Code Bye

java线程监控数据库表是否有新纪录,有就将这条记录查询出来

java线程监控数据库中某一张表是否有新纪录产生,有就将新记录查询出来。

标记最大id,按时去查询,有数据就读出来
首先要确定轮询数据库的时间间隔,如果插入的频率比较高可以将时间间隔设置的比较小。其次表中数据是否有规律,比如sequenceId,这样可以根据该Id查询最新插入的记录,如果没有规律那么将数据的主键加入内存,比如set中,根据set不允许重复记录,可以查到新插入的记录
1. 数据库:  在一个表上增加一个行级触发器
2. 程序: 拦截器。
找quantaz框架,在spring里面直接配好即可,本身就是一个定时线程

配置方法跟linux/unix下cronjob一模一样,每天,每月,每小时这些都可以配置

至于判断是否有新纪录,最笨方法就是你线程里面sysdate取时间戳,时间戳-你的定时线程周期–这期间的数据库记录就是新纪录(当然数据库表设计里需要有一个字段存放入库时间)

这个数据库表中的数据是有另外的设备添加进去的,那这个线程要怎么写啊

40分
引用 5 楼 u012521676 的回复:

这个数据库表中的数据是有另外的设备添加进去的,那这个线程要怎么写啊

你添加进去的数据总有时间戳或者标识字段表示是什么时候添加的吧,否则你线程怎么判断哪些是新的数据?

线程不用你自己写Runnable接口实现,quotaz框架帮你用代理做,你就写一个普通java类即可

引用 6 楼 qingyuan18 的回复:
Quote: 引用 5 楼 u012521676 的回复:

这个数据库表中的数据是有另外的设备添加进去的,那这个线程要怎么写啊

你添加进去的数据总有时间戳或者标识字段表示是什么时候添加的吧,否则你线程怎么判断哪些是新的数据?

线程不用你自己写Runnable接口实现,quotaz框架帮你用代理做,你就写一个普通java类即可

我的Java web项目没有用到框架,我想试试就用Java怎么写,我是小白,求指教

表里面有创建时间没?
有的话记录上次查询的时间,在下次查询时加上时间大于
没有的话记录上次查询最后一条id,下次查询时大于
好吧,我其实是要做一个短信发送的功能,就是我要监控数据库中的某一张表,只要这张表中有新增一条记录,我就要从这张表中获取某一个字段信息,到另一张表中去查询得到手机号,来发送短信,我现在就是想看Java能不能写一个线程去多少时间去查询一次那张表,看有没有新数据,有的话就查询得到这条记录,我想知道这个线程怎么写,我不会写多线程,求源码。。。。
求解答。。。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明java线程监控数据库表是否有新纪录,有就将这条记录查询出来