zhyiwww
          用平實(shí)的筆,記錄編程路上的點(diǎn)點(diǎn)滴滴………
          posts - 536,comments - 394,trackbacks - 0
          如果你想的取得一個(gè)結(jié)果集的行數(shù),怎么辦?
          在ResultSet對(duì)象里面,我們找不到取得結(jié)果行數(shù)的辦法。
          其實(shí)我們通常的解決方法無(wú)非有一下幾種:

          [1]
          Connection con=....
          Statement stmt = con.createStatement();
          ? ?
          ?String sqlStr = "count(*) as total ";
          ?ResultSet rst = stmt.executeQuery(sqlStr);
          ?
          ?rst.next();
          int total =? rst.getInt("total");

          缺點(diǎn):如果想要遍歷結(jié)果集,你不得不在執(zhí)行一次查詢,取得結(jié)果集。

          [2]

          ?? ??? ??? ?String accQrySql = "select * from accounts";
          ?? ??? ??? ?Connection con = DBUtils.getConnection();
          ?? ??? ??? ?Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
          ?? ??? ??? ?
          ?? ???????????????? ResultSet rst = stmt.executeQuery(accQrySql);

          ?????????????????????? 你可以通過(guò)下面的方法來(lái)取得結(jié)果集的記錄數(shù)目
          ?????????????????????? rst.last();
          ?????????????????????? int total = rst.getRow();

          ?????????????????????? 這時(shí),你可以取得記錄數(shù)目。

          ?????????????????????? 如果
          while(rst.next()){
          ........
          }???? ?

          int total = rst.getRow();
          你將得到的total是0

          因?yàn)椋琯etRow是在遍歷結(jié)果集的時(shí)候的指針,也是在結(jié)果集內(nèi)移動(dòng)的指針,也就是說(shuō),指向了當(dāng)前的記錄索引號(hào),所以,在進(jìn)行結(jié)果集的遍歷前和后都被重置成0。
          所以,想取得記錄的條數(shù),可以把指針移到最后一條記錄,然后取得當(dāng)前記錄的編號(hào)就是記錄的條數(shù)。
          所以,必須用
          rst.last();
          之后才能用 rst.getRow()來(lái)取得,才能取到值。

          注意:想要用這種方法來(lái)取得結(jié)果集的行數(shù),必須用 可滾動(dòng)結(jié)果集???? ?
          ?? ?Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
          否則,你就不能執(zhí)行
          rst.last()
          也就不能取得結(jié)果集的條數(shù)。



          |----------------------------------------------------------------------------------------|
                                     版權(quán)聲明  版權(quán)所有 @zhyiwww
                      引用請(qǐng)注明來(lái)源 http://www.aygfsteel.com/zhyiwww   
          |----------------------------------------------------------------------------------------|
          posted on 2009-06-19 17:25 zhyiwww 閱讀(1968) 評(píng)論(2)  編輯  收藏 所屬分類: java basic

          FeedBack:
          # re: 如何取得ResultSet的行數(shù)
          2009-06-19 19:00 | 心夢(mèng)帆影
          有用,學(xué)習(xí)了,謝謝你的博文!  回復(fù)  更多評(píng)論
            
          # re: 如何取得ResultSet的行數(shù)
          2009-06-21 09:40 | wyq
          主站蜘蛛池模板: 尉犁县| 鄂托克旗| 岑溪市| 米脂县| 河北区| 营山县| 遵化市| 商河县| 梁山县| 桑日县| 周宁县| 上蔡县| 孟州市| 抚宁县| 通江县| 桦南县| 云龙县| 读书| 孟州市| 镇安县| 紫金县| 屯留县| 会昌县| 库车县| 辽阳市| 高邮市| 凤冈县| 山西省| 张家港市| 曲靖市| 布尔津县| 介休市| 岳普湖县| 五峰| 西昌市| 永州市| 义乌市| 若羌县| 定南县| 永登县| 夏邑县|