本文實例講述了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(); }}更多關于java相關內容感興趣的讀者可查看本站專題:《Java數據結構與算法教程》、《Java文件與目錄操作技巧匯總》、《Java操作DOM節點技巧總結》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
新聞熱點
疑難解答