我一直在尝试寻找一种方法来知道我是否在结果集的最后一行,并且找到了 isLast() 方法。
我做了类似的事情:
if(rs.isLast()) {
//do some operation here
}
但它给我一个错误:仅转发结果集不支持请求的操作。
我搜索了一个解决方案,它说我应该更改 TYPE_FORDWARD_ONLY。但是现在,我想知道是否有办法通过使用 TYPE_FORWARD_ONLY 来知道我是否在最后一个记录集中?
谢谢。
还有一种方法isAfterLast
,您可以在调用next
. TYPE_FORDWARD_ONLY 也不需要支持此功能,但无论如何您都可以尝试。
您的连接器可能不支持TYPE_FORWARD_ONLY
您可以使用DatabaseMetaData#supportsResultSetType(int)检查它。
如果您的驱动程序不支持afterLast
并且isLast
您只能使用 TYPE_FORWARD_ONLY 结果集,那么您将需要处理所有行,然后在读取所有行后对最后一行执行您想要执行的额外操作。