无法访问 Java 结果集中的数据



我正在尝试访问从JavaResultSet对象获得的一些数据。

Context ctx = new InitialContext();
DataSource datasource = ctx.lookup("database")
PreparedStatement query = datasource.getConnection().prepareStatement( "select * n" +
"from appDb.market a n" +
"where not exists n" +
"(select * from mainDb.market b where a.id = b.id);");
ResultSet rs = query.executeQuery();
if (rs.next()){
//The code will not reach this condition
System.out.println("Data found!");
}

但是,由于某种原因,rs.next(( 的计算结果不是 true,即使目前 ResultSet 的 rowData 确实有行。

我可以在调试工具中访问结果集的 rowData 对象,并且可以看到行的大小为 1,但是,我无法访问该行。 我想我一定在做傻事,但不太确定。

这就是文档的内容:

如果新的当前行有效,则为 true;如果没有更多行,则为 false。

在您的情况下,由于没有更多的行,它应该返回 false。

此外,您可能希望将first()用于条件用例。