JDBC應用游標完成分頁查詢的辦法。本站提示廣大學習愛好者:(JDBC應用游標完成分頁查詢的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是JDBC應用游標完成分頁查詢的辦法正文
本文實例講述了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法式設計有所贊助。