设计了这样的一个系统,数据库和网站在同一台服务器上,用户通过访问网页向数据库插入数据信息,管理人员使用Java应用程序处理数据信息。数据库使用的是MSQL请问有什么办法可以实现当数据库有新的数据会插入时,应用程序能够自动提示我试验过一个办法,使用Timer.schedule让应用程序每隔一定时间查询一次数据库,但应用程序总是在运行一段时间之后出现heap space。请问对于这个要求有没有更好的解决方法?谢谢! 

解决方案 »

  1.   


    插入数据后,主动通知应用程序不就可以了
    例如用socket通信之类的
      

  2.   

    dwr的推技术,监控数据库表,一有更新就通知客户端刷新.
    但这个技术感觉不大好用,效率也并不比你的Timer.schedule高那去.
    其它方面也有好用,你的问题类似如何做到实时通讯一样.
      

  3.   

    呵呵, 当对该数据库表操作时, 通知客户端。这个时候,使用ajax技术编程非常方便了。
    ---------------------------
    细粒度权限管理软件 试用版下载
    www.metadmin.com
      

  4.   

    不知道以下方面能否行得通:
    客户端在与服务器发生数据变化时,在最后提示操作成功(不知道你的程序有没有)前,添加一个Socket连接到服务器的一个中间组件(这个中间组件来接收客户端成功变更数据的标识)。这个中间组件与管理员的应用程序是有SOCKET连接的,当中间组件接收到标识就给管理员应用程序发送更新标识。
      

  5.   

    是否可以考虑在数据库中建一个表,里面放一个标志位,你的数据更新了就同时更新这个标志位。而你的Timer.schedule让应用程序每隔一定时间去检查这个标志位,发现有更新再去查询一次数据库,这样就不至于出现heap space了吧。
      

  6.   

    用timer对更新代码做一个监听 有人执行这个更新代码就触发一个事件