结果集中的重复检索返回null

我遇到了ResultSet.getString的问题,当我第一次调用它时它会调用它但第二次返回null(这不会关闭结果集或sql连接)

 if (rs.getString(i) == null) { properties.setProperty(metaData.getColumnLabel(i), ""); } else { properties.setProperty(metaData.getColumnLabel(i), rs.getString(i)); } 

当然代码很容易修复,以避免第二次调用rs.getString()但我想要理解的是为什么第二次返回null如果第一次没有

来自Javadoc :

为了获得最大的可移植性,应按从左到右的顺序读取每行中的结果集列,并且每列应只读一次。

在引擎盖下,您正在消耗来自TCP流的字节,因此您不能两次检索相同的列值也就不足为奇了。