| 當(dāng)我們執(zhí)行完一條Sql語(yǔ)句,獲取到一個(gè) ResultSet 對(duì)象后,有時(shí)我們需要立即知道到底返回了多少個(gè)元素,但是 ResultSet 并沒有提供一個(gè) size() 方法 or length 的屬性,我們可以一個(gè)一個(gè)調(diào)用 next() 去累加計(jì)算,但是我們還有更好的辦法 : 
 PreparedStatement statement = ......; ResultSet results = statement.executeQuery(); // 將游標(biāo)移動(dòng)到最后一行上 results.last(); // 得到當(dāng)前的 row number,在 JDBC 中,row number 從1開始,所以這里就相當(dāng)于行數(shù) int rowCount = results.getRow(); //此時(shí)游標(biāo)執(zhí)行了最后一行,如果我們后面還想從頭開始調(diào)用 next()遍歷整個(gè)結(jié)果集,我們可以將游標(biāo)移動(dòng)到第一行前面 results.beoreFirst(); // 通過上述這步操作,我們算是回復(fù)了結(jié)果集到初始狀態(tài)(即剛查詢出來的狀態(tài)) 
 注意 :上述這一系列移動(dòng)游標(biāo)的操作是有前提的,我們的結(jié)果集必須是 scrollable(可滾動(dòng)的) !這個(gè)是由 statement 對(duì)象決定,我們?cè)趧?chuàng)建 statement 對(duì)象可以指定如下參數(shù) : 
 conn = getConnection(); 通過上述 statement 獲取的 ResultSet 就是可以滾動(dòng)的,如果我們只是 conn.prepareStatement(sql) 來獲取的 statement 對(duì)象,是不可以滾動(dòng)的(只可以調(diào)用 next() 向前遍歷),調(diào)用任何上述移動(dòng)游標(biāo)的方法,都會(huì)拋出 SQLException . 
 ResultSet 還為我們定義了如下常量 : ResultSet.TYPE_FORWARD_ONLY只能向前滾動(dòng) 
 
 
 | 
|  |