5

我一直在尝试寻找一种方法来知道我是否在结果集的最后一行,并且找到了 isLast() 方法。

我做了类似的事情:

if(rs.isLast()) {
    //do some operation here
}

但它给我一个错误:仅转发结果集不支持请求的操作。

我搜索了一个解决方案,它说我应该更改 TYPE_FORDWARD_ONLY。但是现在,我想知道是否有办法通过使用 TYPE_FORWARD_ONLY 来知道我是否在最后一个记录集中?

谢谢。

4

3 回答 3

1

还有一种方法isAfterLast,您可以在调用next. TYPE_FORDWARD_ONLY 也不需要支持此功能,但无论如何您都可以尝试。

于 2012-05-15T11:27:27.793 回答
0

您的连接器可能不支持TYPE_FORWARD_ONLY您可以使用DatabaseMetaData#supportsResultSetType(int)检查它。

于 2012-05-15T09:10:00.733 回答
0

如果您的驱动程序不支持afterLast并且isLast您只能使用 TYPE_FORWARD_ONLY 结果集,那么您将需要处理所有行,然后在读取所有行后对最后一行执行您想要执行的额外操作。

于 2012-05-15T17:37:37.830 回答