数据库插入新记录,java如何能马上知道

时间:2021-11-15 21:47:32
数据库里收到一条新的信息,java如何能及时知道

18 个解决方案

#1


两种方法,1 通知. 数据库能不能通知,这个就要看数据库了.或者INSERT数据的程序,通知JAVA.
2,监视, JAVA轮询一下当前最大ID,如果和之前的不一样,那么就有新数据了.当然,这个方法要求ID递增啦.

#2


用一个监听器实现
类似的解决方案是插入的时候用socket给一个一直监听的java项目发送信息
然后就处理
貌似还有个数据库的trigger触发器可以实现,没用过

ls的轮询不能实时,socket能实时

#3


楼主说及时,也没说实时呀.
不过用SOCKET监听的方案,到是不错,能具体说说吗?

#4


关键要看插入使用什么手段?存储过程插入?jdbc插入?sqlplus插入?
如果能调用java监听器的那就简单了(比如检查者模式),否则貌似只能定时查询了

#5


让触发器通知java?哈哈哈。

#6


是啊,写个触发器就行了。

#7


引用 5 楼 bayougeng 的回复:
让触发器通知java?哈哈哈。

触发器里面怎么通知java啊?

#8


可以用flash的脚本进行 这个以前用过(C#)......

#9


引用 7 楼 gao11811 的回复:
引用 5 楼 bayougeng 的回复:
 让触发器通知java?哈哈哈。

 触发器里面怎么通知java啊?

呵呵,我跟你开玩笑呢。
你用的什么数据库?我知道db2有一种SQLJ技术,是可以办到把java编译成存储过程的。
Oracle貌似也行。
存储过程可以,触发器应该也行吧?

#10


引用 8 楼 kuqideyupian 的回复:
可以用flash的脚本进行 这个以前用过(C#)......

怎么现在都兴大胸的头像?大胸的比较容易蒙分么?
改天我也整个大胸的试试……
但是,你们在哪找那么大胸的模特呢?

#11


轮询

#12


能不能用触发器 一旦更新了就向另一个表中插入一条数据(或者更新) java只要定时查询这个表就可以了

#13


这种记录是程序插入的,还是手工在数据库客户端用 INSERT 插入的?

不过我想应该是程序插入的,插入数据的那个程序在插入成功后会知道的,在这个程序中通知就可以了。

#14


对,如果是程序插入的,你自己在程序中处理就可以了
如果要直接监视数据库,如果要通用,个人通点是定时查询数据库吧
当然这里可以结合触发器来了
专门整一个临时表,记录数据库的改变状态
然后通过触发器把数据库每个表的改变信息填入到临时表中
当然也可以不用触发器,每次遍历每个数据表

#15


用java去监听数据库中的一个表。然后返回到页面。

#16


引用 13 楼 bao110908 的回复:
这种记录是程序插入的,还是手工在数据库客户端用 INSERT 插入的?

 不过我想应该是程序插入的,插入数据的那个程序在插入成功后会知道的,在这个程序中通知就可以了。


从根源抓起!

#17


我知道的就只有用查询最大ID的方法了,不过你说的立刻是怎样回事。我也很期待中的答案哟。

#18


如果对数据库有深入了解,应该会有办法的。

#1


两种方法,1 通知. 数据库能不能通知,这个就要看数据库了.或者INSERT数据的程序,通知JAVA.
2,监视, JAVA轮询一下当前最大ID,如果和之前的不一样,那么就有新数据了.当然,这个方法要求ID递增啦.

#2


用一个监听器实现
类似的解决方案是插入的时候用socket给一个一直监听的java项目发送信息
然后就处理
貌似还有个数据库的trigger触发器可以实现,没用过

ls的轮询不能实时,socket能实时

#3


楼主说及时,也没说实时呀.
不过用SOCKET监听的方案,到是不错,能具体说说吗?

#4


关键要看插入使用什么手段?存储过程插入?jdbc插入?sqlplus插入?
如果能调用java监听器的那就简单了(比如检查者模式),否则貌似只能定时查询了

#5


让触发器通知java?哈哈哈。

#6


是啊,写个触发器就行了。

#7


引用 5 楼 bayougeng 的回复:
让触发器通知java?哈哈哈。

触发器里面怎么通知java啊?

#8


可以用flash的脚本进行 这个以前用过(C#)......

#9


引用 7 楼 gao11811 的回复:
引用 5 楼 bayougeng 的回复:
 让触发器通知java?哈哈哈。

 触发器里面怎么通知java啊?

呵呵,我跟你开玩笑呢。
你用的什么数据库?我知道db2有一种SQLJ技术,是可以办到把java编译成存储过程的。
Oracle貌似也行。
存储过程可以,触发器应该也行吧?

#10


引用 8 楼 kuqideyupian 的回复:
可以用flash的脚本进行 这个以前用过(C#)......

怎么现在都兴大胸的头像?大胸的比较容易蒙分么?
改天我也整个大胸的试试……
但是,你们在哪找那么大胸的模特呢?

#11


轮询

#12


能不能用触发器 一旦更新了就向另一个表中插入一条数据(或者更新) java只要定时查询这个表就可以了

#13


这种记录是程序插入的,还是手工在数据库客户端用 INSERT 插入的?

不过我想应该是程序插入的,插入数据的那个程序在插入成功后会知道的,在这个程序中通知就可以了。

#14


对,如果是程序插入的,你自己在程序中处理就可以了
如果要直接监视数据库,如果要通用,个人通点是定时查询数据库吧
当然这里可以结合触发器来了
专门整一个临时表,记录数据库的改变状态
然后通过触发器把数据库每个表的改变信息填入到临时表中
当然也可以不用触发器,每次遍历每个数据表

#15


用java去监听数据库中的一个表。然后返回到页面。

#16


引用 13 楼 bao110908 的回复:
这种记录是程序插入的,还是手工在数据库客户端用 INSERT 插入的?

 不过我想应该是程序插入的,插入数据的那个程序在插入成功后会知道的,在这个程序中通知就可以了。


从根源抓起!

#17


我知道的就只有用查询最大ID的方法了,不过你说的立刻是怎样回事。我也很期待中的答案哟。

#18


如果对数据库有深入了解,应该会有办法的。