我正在尝试访问从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()
用于条件用例。