David.Ko

          Follow my heart!
          posts - 100, comments - 11, trackbacks - 0, articles - 0
             :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
          最近做了一個(gè)中小企業(yè)網(wǎng)絡(luò)平臺(tái),在操縱結(jié)果集時(shí),在abstract() 和 next()  的使用上產(chǎn)生了沖突,以致于總是漏掉最開始的一條數(shù)據(jù)。因?yàn)槠渲袃?nèi)嵌了分頁程序,int pointer = (sp.getShowPage() - 1) * sp.getPageSize() + 1;
          abstract(pointer)后指針指向第一條數(shù)據(jù)(開始時(shí)指針指向第一條的前面),然后我用while(rs.next())獲取并保存其中的sp.getPageSize() 個(gè)數(shù)據(jù)(實(shí)際上我只獲取了sp.getPageSize() -1個(gè)),因?yàn)樵谡{(diào)用rs.next()后,指針向下移動(dòng)了一行,即此時(shí)指向第二條數(shù)據(jù)了。
          這種指針的移動(dòng)在所有數(shù)據(jù)庫中都是一樣的。因?yàn)镴DBC 驅(qū)動(dòng)需要提前獲得一行來判斷當(dāng)前行是否是最后一行。
          所以我換了一種新結(jié)構(gòu):
          rs.absolute(pointer);
          for (int i = 0; i < sp.getPageSize(); i++) {
                   //獲取并保存信息
              if (!rs.next())     //      next()在這即起到了移動(dòng)指針,有起到了判斷剩余的數(shù)據(jù)不足sp.getPageSize()的作用,
                                             有點(diǎn)類似于直接插入排序中的變量j
               break;
             }
          這樣便不會(huì)漏掉數(shù)據(jù),而且提高了程序執(zhí)行效率!

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 保山市| 军事| 都兰县| 永新县| 惠来县| 玉环县| 林西县| 崇阳县| 潞西市| 崇信县| 库伦旗| 双鸭山市| 万盛区| 永城市| 汤阴县| 阜阳市| 济南市| 长宁区| 迁安市| 南充市| 武宁县| 融水| 武定县| 上栗县| 丹阳市| 绥德县| 新丰县| 手游| 泗水县| 庆阳市| 双辽市| 万盛区| 承德市| 禹城市| 荔波县| 亚东县| 精河县| 乌恰县| 柳河县| 陈巴尔虎旗| 鄂州市|