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

phu*_*ury 2 java jdbc

我有一个问题ResultSet.getString,当我第一次返回值时调用它,但第二次返回null(这没有关闭结果集或sql连接)

if (rs.getString(i) == null) {
    properties.setProperty(metaData.getColumnLabel(i), "");
} else {
    properties.setProperty(metaData.getColumnLabel(i), rs.getString(i));
}
Run Code Online (Sandbox Code Playgroud)

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

use*_*421 7

来自Javadoc:

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

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