有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JDBC上的java缓存数据

我已经使用JavaSwing创建了一个数据库应用程序。每当我调用find类时,我的程序都会从数据库中检索数据。find类只是创建一条语句,获取当前数据库连接,然后执行该语句。从数据库返回的值将放在结果集上,然后显示在jTable上。问题是:

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

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


共 (2) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

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