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

            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é)果集進(jìn)行處理
             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層嵌套是因?yàn)閞ownum虛字段的性質(zhì)造成

          2:在應(yīng)用軟件端處理

             先使用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ù)器隔離遠(yuǎn)和網(wǎng)絡(luò)傳輸滿的情況下建議使用第一種減少傳輸量

          posted on 2008-05-16 13:56 goto 閱讀(199) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫
          主站蜘蛛池模板: 十堰市| 乐东| 太白县| 青田县| 尼勒克县| 砚山县| 健康| 柳林县| 梁平县| 定安县| 天峻县| 舟曲县| 甘谷县| 弥渡县| 玉门市| 刚察县| 土默特左旗| 浦北县| 天门市| 兴安县| 张家口市| 嘉峪关市| 禹州市| 大埔区| 湛江市| 卓资县| 会东县| 乐平市| 工布江达县| 五莲县| 罗平县| 阳高县| 松滋市| 延安市| 宁夏| 织金县| 榆中县| 玛纳斯县| 和顺县| 静乐县| 马边|