我正在从两个具有两个不同查询的表中选择数据。我正在使用一个连接和一个结果集。两个表都填充了,但是第二个查询的resultset.next((返回false,尽管必须为true。
我还试图使用两个不同的准备准备和连接,但这对我来说都没有。
DataSource ds = null;
Connection c = null;
PreparedStatement ps = null;
String sql = "SELECT * FROM TABLE1"
String sql2 = "SELECT * FROM TABLE2"
ds = // My datasource
c = ds.getConnection();
ps = c.prepareStatement(sql);
ResultSet resultSet = ps.executeQuery();
while (resultSet.next()) {
// do smth
// works
}
ps.close();
ps = c.prepareStatement(sql2);
resultSet = ps.executeQuery();
while (resultSet.next()) {
// do somth
// does not work although TABLE2 is populated
}
ps.close();
因此,由于查询SQL2的数据保留,因此程序应跳入第二个环路。你有什么建议吗?谢谢!
在关闭准备序列之前尝试关闭结果集。
另外,如果您有例外,则使用尝试/捕获以清理东西是非常好的练习。请参阅JDBC结果集和语句必须单独关闭,尽管该连接之后已关闭?