0

我已经使用 java swing 创建了一个数据库应用程序。每当我调用 find 类时,我的程序都会从​​数据库中检索数据。find 类只是简单地创建一个语句,获取当前数据库连接,然后执行该语句。从数据库返回的值将被放置在一个 ResultSet 上,然后将显示在一个 jTable 上。问题是这样的:

我打开了查找类,结果显示出来了。然后我转到 SQLyog 或 HeidiSQL(用于操作数据库的应用程序),编辑显示在我的程序上的值,然后保存。我回到我的程序,关闭查找类然后重新打开它,我仍然得到以前的数据,而不是编辑过的数据。请帮忙。查找类打开后必须显示更新。我获取更新数据的唯一方法是关闭我的整个程序然后重新打开它,我不想这样做。

编辑:这是我尝试过的。基本上,一旦我的程序第一次创建到数据库的连接,我将它保存到另一个类,这使得连接始终打开(我假设)。因此,每当我想创建查询时,我都会调用该类来获取连接。我现在所做的是,在从 find 类执行查询之后,我关闭了与 .close() 函数的连接。它有效,但我真的需要每次都关闭连接吗?同样,这只是一个桌面应用程序,而不是 Web 程序。

4

2 回答 2

1

我认为您遇到了事务隔离问题。一些驱动程序在获取连接时会启动隐式事务,因此您当时会看到数据库的快照。您可能想要一个 READ COMMITTED 级别,它应该显示应用了所有已提交事务的数据库。

于 2012-11-08T02:52:12.033 回答
0

看起来您尚未提交编辑,或者您需要通过刷新查询来刷新数据。

于 2012-11-06T23:05:55.717 回答