【问题标题】:How should I refresh gui that is displaying data from a mySQL database?我应该如何刷新显示来自 mySQL 数据库的数据的 gui?
【发布时间】:2015-01-11 07:33:16
【问题描述】:

我在我的程序中使用 JDBC 连接到 mySQL 数据库。在运行时,用户可以通过添加新内容来修改数据库的内容(更多功能即将推出,但现在这就是我所拥有的全部)。但是,当创建数据库的新条目时,我希望显示内容的 gui 使用修改后的数据更新自己。

我知道如何更新 gui 元素,但这似乎不适用于从我的数据库创建的 ResultSet。

我对 mySQL 和 JDBC 还很陌生,因此非常感谢任何帮助!

【问题讨论】:

  • 您无法从 mysql 推送更新,但是您可以轮询数据库表以获取任何数据更新并采取相应措施。轮询可以基于基于时间的触发器(不是 DB 触发器)
  • 在我的程序中,用户点击一个按钮来确认添加一个条目,所以我不需要直接从数据库监控更改,因为我总是知道它们何时发生。您能否详细说明答案中的“相应行动”部分?
  • 因为你知道触发事件,添加后你可以对db进行全选调用,你将拥有更新的数据集。另一种方法可能是缓存数据(您需要第三方支持)
  • 所以你是说我应该关闭窗口并使用更新的数据集重建 gui?我试图避免每次添加某些内容时都需要重新启动程序,但如果这是唯一的选择,那么我将使用它
  • 不,我是说如果用户单击按钮说“添加”,那么在您添加新记录并且已成功添加之后,然后获取所有记录。就像我说的那样,它有一些性能成本,您可以使用缓存或任何 ORM 框架,如 Hibernate

标签: java mysql database jdbc


【解决方案1】:

第一个问题: - 如果是web应用,你可以使用ajax和ajax回调来管理你的应用的返回(成功或者失败) - 如果它是一个标准应用程序,您可以通过这种方式进行管理(从我这边工作): 用户添加数据后,您需要等待数据库的结果。如果 (insert/update/delete) 没有返回任何异常,您必须修改您的 GUI(添加/更新/删除)您的显示。如果你有任何问题,你不应该修改你的 gui。

不要执行任何全选,因为如果数据库很大,您可能会导致应用程序崩溃。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多