我的漫漫程序之旅

          專注于JavaWeb開發
          隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
          數據加載中……

          JDBC利用游標分頁查詢

          /**
            * 一次只從數據庫中查詢最大maxCount條記錄
            * 
          @param sql 傳入的sql語句
            * 
          @param startNo 從哪一條記錄開始
            * 
          @param maxCount 總共取多少條記錄
            
          */

           
          public void getData(String sql,int startNo,int maxCount){
            Connection conn 
          = ConnectionUtil.getConnection();
            
          try {
          //   conn.prepareStatement(sql,游標類型,能否更新記錄);
          //      游標類型:
          //       ResultSet.TYPE_FORWORD_ONLY:只進游標
          //       ResultSet.TYPE_SCROLL_INSENSITIVE:可滾動。但是不受其他用戶對數據庫更改的影響。
          //       ResultSet.TYPE_SCROLL_SENSITIVE:可滾動。當其他用戶更改數據庫時這個記錄也會改變。
          //      能否更新記錄:
          //       ResultSet.CONCUR_READ_ONLY,只讀
          //       ResultSet.CONCUR_UPDATABLE,可更新
             PreparedStatement pstat = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
             
          //最大查詢到第幾條記錄
             pstat.setMaxRows(startNo+maxCount-1);
             ResultSet rs 
          = pstat.executeQuery();
             
          //將游標移動到第一條記錄
             rs.first();
          //   游標移動到要輸出的第一條記錄
             rs.relative(startNo-2);
             
          while(rs.next())
              System.out.println(rs.getInt(
          1));
            }
           catch (SQLException e) {
             e.printStackTrace();
            }

           }

           
           
          /**
            * 從數據庫中查詢所有記錄,然后通過游標來獲取所需maxCount條記錄
            * 
          @param sql 傳入的sql語句
            * 
          @param startNo 從哪一條記錄開始
            * 
          @param maxCount 總共取多少條記錄
            
          */

           
          public void getDataFromAll(String sql,int startNo,int maxCount){
            Connection conn 
          = ConnectionUtil.getConnection();
            
          try {
             PreparedStatement pstat 
          = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
             ResultSet rs 
          = pstat.executeQuery();
             rs.first();
             rs.relative(startNo
          -1);
             
          int i = startNo-1;
             
          while(i < startNo + maxCount-1 && !rs.isAfterLast()){
              System.out.println(rs.getInt(
          1));
              i
          ++;
              rs.next();
             }

            }
           catch (SQLException e) {
             e.printStackTrace();
            }

           }
           


          posted on 2008-08-13 16:39 々上善若水々 閱讀(4797) 評論(0)  編輯  收藏 所屬分類: J2SE

          主站蜘蛛池模板: 从化市| 辽源市| 乌拉特中旗| 琼结县| 茌平县| 深泽县| 专栏| 吉安市| 浠水县| 桃江县| 志丹县| 自贡市| 惠来县| 恩平市| 兴仁县| 军事| 嘉义市| 满城县| 桃园县| 乐昌市| 扬中市| 南宫市| 蒙山县| 抚顺市| 巴楚县| 芦溪县| 正定县| 田东县| 洛南县| 于都县| 仁寿县| 岢岚县| 寿光市| 海丰县| 长治县| 彰武县| 潜山县| 和林格尔县| 上林县| 陆良县| 三台县|