我的java歷程

          采用JDBC進(jìn)行數(shù)據(jù)庫分頁查詢

          采用JDBC進(jìn)行數(shù)據(jù)庫分頁查詢

          ?/**
          ? * 一次只從數(shù)據(jù)庫中查詢最大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,游標(biāo)類型,能否更新記錄);
          //????? 游標(biāo)類型:
          //?????? ResultSet.TYPE_FORWORD_ONLY:只進(jìn)游標(biāo)
          //?????? ResultSet.TYPE_SCROLL_INSENSITIVE:可滾動(dòng)。但是不受其他用戶對(duì)數(shù)據(jù)庫更改的影響。
          //?????? ResultSet.TYPE_SCROLL_SENSITIVE:可滾動(dòng)。當(dāng)其他用戶更改數(shù)據(jù)庫時(shí)這個(gè)記錄也會(huì)改變。
          //????? 能否更新記錄:
          //?????? 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();
          ???//將游標(biāo)移動(dòng)到第一條記錄
          ???rs.first();
          //???游標(biāo)移動(dòng)到要輸出的第一條記錄
          ???rs.relative(startNo-2);
          ???while(rs.next())
          ????System.out.println(rs.getInt(1));
          ??} catch (SQLException e) {
          ???e.printStackTrace();
          ??}
          ?}
          ?
          ?/**
          ? * 從數(shù)據(jù)庫中查詢所有記錄,然后通過游標(biāo)來獲取所需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 2006-12-11 20:21 landril 閱讀(10820) 評(píng)論(2)  編輯  收藏 所屬分類: J2SE

          Feedback

          # re: 采用JDBC進(jìn)行數(shù)據(jù)庫分頁查詢[未登錄] 2008-03-04 11:05 天空

          好謝謝  回復(fù)  更多評(píng)論   

          # re: 采用JDBC進(jìn)行數(shù)據(jù)庫分頁查詢 2008-12-18 13:33 路人甲

          很好, 總結(jié)的很詳細(xì)!  回復(fù)  更多評(píng)論   


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 汝阳县| 泾源县| 拜城县| 吉木乃县| 龙井市| 南漳县| 万荣县| 永州市| 洛南县| 永清县| 姜堰市| 蒙城县| 丹江口市| 津市市| 固原市| 抚顺县| 乌审旗| 定远县| 武宣县| 常宁市| 定西市| 凤山县| 自贡市| 两当县| 会泽县| 那坡县| 葫芦岛市| 石林| 多伦县| 宕昌县| 濮阳县| 阿克陶县| 宜良县| 秭归县| 舒兰市| 菏泽市| 日土县| 教育| 沂水县| 新乡市| 石渠县|