所以我有一个在多台计算机上运行的程序。该程序连接到服务器,从中获取其所有数据。有一个JPanel,它列出了postgresql数据库中表的名称。截至目前,刷新面板的唯一方法是按下按钮。我希望面板在数据库发生更改时自行更新,因此如果一个用户添加了名称,其他用户将能够立即看到更改。有没有办法向连接到服务器的所有用户广播消息,以便他们的面板可以刷新?
答案 0 :(得分:0)
只要你想做这样的事情,你就进入了多线程和各种各样的havock世界。您的问题与数据库没有任何关系,您只需要使用应用程序向所有其他人发送消息,以便在需要时更新组件,将您的问题分开。现在你需要问一些问题,比如同一网络上的用户?然后,您可以使用一个简单的java聊天客户端,其中有很多。但想一想,你真的需要这个要求吗?难道你不能每隔10秒更新一次表吗?还是每5秒钟?实施难度的差异很大,但我认为结果非常类似,甚至用户也不会注意到。但也许你只是想学习东西,那么也许你认为你应该在sql中添加另一个表,其中一个条目记录用户表更新的时间,你可以检查它,并且比另一个更优化。但这被认为是不好的做法,你关心吗?与sql语句相同,用于检查最后一次从网上看到的表进行编辑时,但是如果我们始终应用最佳实践,应用程序仍然可以跨越该行。
毕竟,你的更新按钮可能看起来不那么糟糕。
但是用户抱怨这种废话,你无法向每个用户解释这些东西。我的建议是拥有一个可配置的更新,每隔几秒就会运行一次。你必须查看有关多线程的内容,但不应该太可怕。