看看這段代碼:在Java中,爲什麼ResultSet不允許您運行next()超過1次?
ResultSet results=preparedStmt.executeQuery();
while (results.next()){
String subject=results.getString(1);
System.out.println(subject +" 1st time");
}
while (results.next()){
String subject=results.getString(1);
System.out.println(subject+ " 2nd time");
}
爲什麼系統只打印出第一次時的結果,&不打印出結果在第二次?
如果我們想運行results.next()超過1次,那麼代碼的正確方法是什麼?
在精細的手工只需一眼.. ['ResultSet.first()' ](http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#first%28%29)? –
因爲您已達到結果的結尾。 ResultSet(當天返回)是單方向可穿越的(其中支持雙向遊標的驅動程序較少,而那些驅動程序支持雙向遊標)。 – MadProgrammer
@Andrew:差不多。這是另一個。從javadoc的第2段開始:*「最初,遊標位於**第一行之前**。」*。有一個'beforeFirst()'方法就是這麼做的。但是,規範方法是將結果集映射到bean集合,儘快關閉所有內容,然後對該集合進行後處理。 – BalusC