小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Java JDBC 中獲取 ResultSet 的大小

 lichwoo 2021-05-31

當(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 = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

通過上述 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)
ResultSet.TYPE_SCROLL_INSENSITIVE和Result.TYPE_SCROLL_SENSITIVE這兩個(gè)方法都能夠?qū)崿F(xiàn)任意的前后滾動(dòng),使用各種移動(dòng)的ResultSet指針的方法。

 

 


————————————————
版權(quán)聲明:本文為CSDN博主「DrifterJ」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/drifterj/article/details/17720271

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多