ResultSet方法“last”这是一种最佳方式吗?

时间:2009-04-22 00:23:29

标签: java jdbc

我有这个执行此操作的java代码

ResulSet rs = stmt.executeQuery();
while (rs.next()) {
    .... //do regular processing

    if (rs.last()) {
       //do last record processing
    }

}

3 个答案:

答案 0 :(得分:4)

您应该使用:isLast()代替。

请注意,并非所有JDCB驱动程序都支持此功能。显然你必须用你的装置来检查它。

大多数主要数据库工作正常。

固定代码应如下所示。

if( rs.isLast() ) { 
   // do last record processing
}

答案 1 :(得分:2)

就个人而言,我会声明从循环外的查询中检索的变量,然后在循环之后执行“最后一次记录处理”。

ResulSet rs = stmt.executeQuery();
long primaryKey;

while (rs.next()) {
    primaryKey = rs.getLong(1);
    .... //do regular processing
}

// Do last record processing.
System.out.println("last primary key = " + primaryKey);

答案 2 :(得分:2)

否:rs.last()实际上会将光标发送到ResultSet中的最后一行,这绝对不是您想要做的。您只能处理结果集中最多2行(第一行和最后一行)。