实时监听的数据库某张表数据变动情况 java_怎么实现数据库中某张表的数据改变后,即时推送到前台?...

//要设计一个服务器端JAVA程序

//在服务器端嵌入卷游标cur

//并在数据库中创建

//触发器IDU和一个辅助表TABLE2

//当增删改TABLE1时触发器将时间存入TABLE2

//服务器端通过不停比较最后一个时间是否改变判断是否有人增删改

//如有在文本框中显示“有人增删改表TABLE1”

//下面是有关的代码段:

//在数据库中创建IDU触发器

//TABLE1是要监视的表

//TABLE2是数据库中用于记录增删改日期的表

CREATE TREGGER IDU

ON TABLE1

AFTER INSERT,DELETE,UPDATE

AS

INSERT INTO TABLE2 (DATE) VALUES GETDATE()

GO

//在JAVA服务器端程序的主窗口加入下列代码

//定义共享变量

EXEC SQL BEGIN DECLARE SECTION;

String oldDate,newDate;

EXEC SQL END DECLARE SECTION;

//定义指向TABLE2的卷游标cur

EXEC SQL DECLARE  cur SCROLL CURSOR FOR

SELECT DATE

FROM TABLE2

END_EXEC;

//打开卷游标cur,每打开一次

//执行一次卷游标cur的SELECT语句

EXEC SQL OPEN cur  END_EXEC;

//推进卷游标到TABLE2的

//最后一行(LAST)并把DATE赋给

//oldDate为共享变量

EXEC SQL LAST FROM cur INTO :oldDate  END_EXEC;

//在JAVA服务器 端程序的服务器线程的run()方法中加入下列代码

while(true){

EXEC SQL OPEN cur;

END_EXEC

EXEC SQL LAST FROM cur INTO :newDate;

END_EXEC

if(!(newDate.equals(oldDate)){

text.setText("有人增删改了解表TABLE1");

oldDate=newDate.clone();

}

}

EXEC SQL CLOSE cur  END_EXEC;


版权声明:本文为weixin_42467960原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。