古之成大事者,不唯有超世之才,亦唯有堅韌不拔之志也!

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            3 隨筆 :: 44 文章 :: 1 評論 :: 0 Trackbacks
          在做view的時候往往要把批量數(shù)據(jù)顯示給用戶看,那么這個時候我們就要對數(shù)據(jù)做分頁操作
          總的來講分頁有兩種方式:

          1:數(shù)據(jù)庫服務(wù)器端處理
             就是說在數(shù)據(jù)庫上做查詢時就只返回需要的數(shù)據(jù)如:從數(shù)據(jù)庫表中的第M條記錄開始取N條記錄
             sqlserver :
          SELECT *
                  
          FROM  ( SELECT Top N *  
                                   
          FROM  (SELECT Top (M + N - 1* FROM 表名稱 Order by 主鍵 desc
          ) t1 ) t2
          然后再對結(jié)果集進行處理
             oracle:
          select * from ( select rownum row_num,TABL_L.* from ( select * from table where A order
                     by B) TABLE_L ) where row_num 
          >= M and rownum < (M+N) 需要做3層嵌套是因為rownum虛字段的性質(zhì)造成

          2:在應用軟件端處理

             先使用select * from table A where B order by C
             然后對獲得的結(jié)果處理
            
           while(rs.next()){
                intRowCount 
          = rs.getRow();
               
          if(rs.getRow() >= startIndex && rs.getRow() <= endIndex){
                
          //形成顯示html
                } 
           }
            
          兩種方法各有優(yōu)勢,如果在數(shù)據(jù)量不是很大的情況下,建議使用第二種,有利于sql的統(tǒng)一
          在數(shù)據(jù)量大以及數(shù)據(jù)庫服務(wù)器隔離遠和網(wǎng)絡(luò)傳輸滿的情況下建議使用第一種減少傳輸量

          posted on 2008-05-16 13:56 goto 閱讀(198) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫
          主站蜘蛛池模板: 综艺| 金塔县| 吉林省| 修武县| 栖霞市| 朝阳区| 平果县| 富裕县| 胶州市| 琼结县| 镇沅| 策勒县| 广灵县| 牙克石市| 博白县| 东兰县| 石棉县| 富民县| 张家界市| 临潭县| 化州市| 郯城县| 抚顺县| 酉阳| 廉江市| 报价| 东兴市| 寿阳县| 成都市| 靖江市| 大邑县| 交城县| 金堂县| 凉山| 洞头县| 济源市| 改则县| 札达县| 棋牌| 吐鲁番市| 巩留县|