我有这个执行此操作的java代码
ResulSet rs = stmt.executeQuery();
while (rs.next()) {
.... //do regular processing
if (rs.last()) {
//do last record processing
}
}
答案 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行(第一行和最后一行)。