我有这样的Java代码,这是否ResultSet方法“last”是否是最佳方式?
ResulSet rs = stmt.executeQuery();
while (rs.next()) {
.... //do regular processing
if (rs.last()) {
//do last record processing
}
}
我有这样的Java代码,这是否ResultSet方法“last”是否是最佳方式?
ResulSet rs = stmt.executeQuery();
while (rs.next()) {
.... //do regular processing
if (rs.last()) {
//do last record processing
}
}
您应该使用:isLast()代替。
请注意,并非所有JDCB驱动程序都支持此功能。显然你必须检查你的安装。
最主要的数据库工作正常。
固定代码应该看起来像这样。
if(rs.isLast()) {
// do last record processing
}
就个人而言,我会宣布,从外循环查询检索到的变量,然后在循环之后做“最后一个记录处理”。
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);
否:rs.last()实际上会将游标发送到ResultSet中的最后一行,这绝对不是你想要做的。您只能从结果集中处理至多2行(第一个和最后一个)。