日期:2014-05-20  浏览次数:20763 次

如何动态显示mysql数据库中新追加的数据记录?
各位老师,应实验室项目需要我初学java不久,需求是这样的:用netbeans开发了一个实时传感数据监测系统,传感器采集实时数据传送到主机节点,这些数据先被存入到mysql数据库中,然后再从数据库中显示出来。显示的结果是一个二维动态曲线图,横轴是时间,纵轴是传感数据值,这个图是用jfreechart实现的。现在想要使数据存储和显示同步一体,即:当数据库中追加有新的数据记录时,立即触发一个事件显示这条记录。如何实现这个触发操作呢?之前用的是定时刷新,即:间隔几秒重新读取数据库数据画一下这个图,后来发现当数据量变大了之后这个方法很不好用。还望各位路过的老师帮帮学生,谢谢!

------解决方案--------------------
实时数据传送到主机节点

接受的時候把它顯示出來就好了,不必先存數據庫再取出來
------解决方案--------------------
可以抛出一个线程隔指定时间去读取数据库。也可以用spring的定时器 来执行定时读取数据库的任务
------解决方案--------------------
探讨

引用:

实时数据传送到主机节点

接受的時候把它顯示出來就好了,不必先存數據庫再取出來

又仔细想了想这个思路,直接显示和显存在读取显示实际上是一回事儿。都涉及新数据到来的时候触发画图显示的问题,所以用哪个思路都没问题。我想知道有没有这样一种方法,当数据库中有新的纪录追加进来时,就触发画图事件将新数据显示出来

------解决方案--------------------
lz可以写个触发器,当有新数据插入时改变状态表中的状态,当然也是用定时器去状态表查看状态了。
------解决方案--------------------
传感器
|
发送信号
|
服务器—绘图—监视器
|
保存数据
|
数据库

为什么要先存入数据库再查呢?

事件触发也不应该是数据库有数据插入,而是服务器有数据到达。有数据到达时,一个线程去画图,一个线程写到数据库,2者之间没什么影响。

而且隔几秒查询一下数据库效率也不高。