3

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

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();

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

4

1 回答 1

6

您需要一个新的 Statement 来实例化您的新 ResultSet。

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

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

语句 API

默认情况下,每个 Statement 对象只能同时打开一个 ResultSet 对象。因此,如果一个 ResultSet 对象的读取与另一个 ResultSet 对象的读取交错,则每个对象都必须由不同的 Statement 对象生成。Statement 接口中的所有执行方法都会隐式关闭语句的当前 ResultSet 对象(如果存在打开的对象)。

于 2012-11-16T18:07:58.287 回答