获取MYSQL上次更新的数据或最后插入的数据

时间:2013-07-11 03:20:12

标签: java mysql database multithreading listener

我有这样的问题。

我正在访问 新条目 表中目前有超过100,000个数据的数据库。

现在我想写一个监听器,意味着如果有任何新记录从其他地方插入到表中我必须得到通知

我的问题是:什么是最好和最快的方法呢?因为有一天, 新条目 表中应该有大约500个新数据。是否适合每次使用线程检查数据库?

我正在使用Java来实现这一点。

请建议我。

3 个答案:

答案 0 :(得分:1)

我不确定是否有任何侦听器存在Mysql更改。因此,获取这些细节并不是直截了当的。

但是mysql中有一个名为“The Binary Log”的东西,其中包含描述数据库更改的“事件”,例如表创建操作或对表数据的更改。

因此,跟踪更改的一种方法是轮询这些日志。挑战在于这些日志是以二进制格式编写的。 Mysql提供了一个名为mysqlbinlog的实用程序来以文本格式处理这些日志。

这是一个用于救援的java解析器,它可以读取mysql二进制日志:

https://github.com/tangfl/jbinlog

整合所有这些点点滴滴,你就可以得到你需要的东西。

答案 1 :(得分:0)

试试这个......

numero = stmt.executeUpdate(query, Statement.RETURN_GENERATED_KEYS);

查看JDBC Statement接口的文档。

答案 2 :(得分:0)

我使用java计时器类作为此解决方案的替代方案。现在它工作正常。它每10秒检查一次数据库,如果条件为真,它将执行我想要的。