java - 在 JDBC 上缓存数据

标签 java database jdbc resultset

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

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

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

最佳答案

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

关于java - 在 JDBC 上缓存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13260810/

相关文章:

java - 如何在 TextView 中获取具有特定符号的特定行

`(a,b) -> a+b` 的 Java8 函数类型

MySQL 使用 ODBC 驱动程序连接字符串

java - Spring NamedParameterJdbcTemplate 删除 IN 子句

java - 是否可以通过 Java NIO 非阻塞套接字异步访问数据库?

java - 将子实体持久化操作级联到其父实体

sql - 查看数据库备份的时间

mysql - 哪个数据库引擎最适合 node.js 应用程序?

java - ODBC 到 JDBC 数据类型的映射

java - 如何在java中获得良好的正则表达式性能