java ResultSet overwrite



我似乎在我的结果集上遇到了一些问题,我以不同的方式命名它们,但它们似乎都有相同的数据,但我无法弄清楚为什么。

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

从语句 API。

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

最新更新