java结果集覆盖

标签 java sql resultset multiple-resultsets

我的结果集似乎有一些问题,我给它们命名不同,但它们似乎都有相同的数据,但我不明白为什么。

String query = "SELECT * FROM blog_comments;";
ResultSet rs = stmt.executeQuery(query);
ResultSetMetaData rsmd = rs.getMetaData();
int colNum = rsmd.getColumnCount();
boolean more = rs.next();

String query2 = "SELECT * FROM blog_entries;";
ResultSet rs2 = stmt.executeQuery(query2);
ResultSetMetaData rsmd2 = rs2.getMetaData();
int colNum2 = rsmd2.getColumnCount();
boolean more2 = rs2.next();

我查看了调试,他们都有相同的列,但我认为他们不应该有任何建议。

最佳答案

您需要一个新的语句来实例化您的新结果集。

Statement st1 = Conn.CreateStatement();
Statement st2 = Conn.CreateStatement();

ResultSet rs1 = st1.executeQuery();
ResultSet rs2 = st2.executeQuery();

来自 Statement API .

By default, only one ResultSet object per Statement object can be open at the same time. Therefore, if the reading of one ResultSet object is interleaved with the reading of another, each must have been generated by different Statement objects. All execution methods in the Statement interface implicitly close a statment's current ResultSet object if an open one exists.

关于java结果集覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13422041/

相关文章:

java - 在 Java 中使用 Streams 实现相当于 Haskell 的 "or"函数的好方法是什么

java - 是否可以再调试 GWT?

java - 反序列化后 transient 字段变为空?

sql - Microsoft.SqlServer.BatchParser 问题

php - 将Mysql文本转换为日期

java - 异常处理修复

PHP查询帖子并将未查询的帖子添加到末尾

java - 如何检查值是否存在/为什么 ResultSet 在 SQLite 中关闭?

java - 试图将数据加载到 TableView 中的 resultSet Date 上出现 NullPointerException

java - 结果集已关闭检索时出错