JDBC使用游標(biāo)實(shí)現(xiàn)分頁(yè)查詢的方法
本文實(shí)例講述了JDBC使用游標(biāo)實(shí)現(xiàn)分頁(yè)查詢的方法。分享給大家供大家參考,具體如下:
/**
* 一次只從數(shù)據(jù)庫(kù)中查詢最大maxCount條記錄
* @param sql 傳入的sql語(yǔ)句
* @param startNo 從哪一條記錄開(kāi)始
* @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ù)庫(kù)更改的影響。
// ResultSet.TYPE_SCROLL_SENSITIVE:可滾動(dòng)。當(dāng)其他用戶更改數(shù)據(jù)庫(kù)時(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ù)庫(kù)中查詢所有記錄,然后通過(guò)游標(biāo)來(lái)獲取所需maxCount條記錄
* @param sql 傳入的sql語(yǔ)句
* @param startNo 從哪一條記錄開(kāi)始
* @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();
}
}
更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java文件與目錄操作技巧匯總》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
- Java基礎(chǔ)開(kāi)發(fā)之JDBC操作數(shù)據(jù)庫(kù)增刪改查,分頁(yè)查詢實(shí)例詳解
- Java使用Jdbc連接Oracle執(zhí)行簡(jiǎn)單查詢操作示例
- JDBC連接MySql數(shù)據(jù)庫(kù)步驟 以及查詢、插入、刪除、更新等
- 使用jdbcTemplate查詢返回自定義對(duì)象集合代碼示例
- Java中JDBC實(shí)現(xiàn)動(dòng)態(tài)查詢的實(shí)例詳解
- 使用JDBC從數(shù)據(jù)庫(kù)中查詢數(shù)據(jù)的方法
- java實(shí)現(xiàn)jdbc查詢結(jié)果集result轉(zhuǎn)換成對(duì)應(yīng)list集合
- JDBC查詢Map轉(zhuǎn)對(duì)象實(shí)現(xiàn)過(guò)程詳解
相關(guān)文章
SpringBoot結(jié)合Redis實(shí)現(xiàn)緩存管理功能
本篇文章主要介紹spring boot緩存管理機(jī)制及相關(guān)概念,以及如何結(jié)合Redis實(shí)現(xiàn)緩存管理,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-01-01
Seata?AT模式啟動(dòng)過(guò)程圖文示例詳解
這篇文章主要為大家介紹了Seata?AT模式啟動(dòng)過(guò)程圖文示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
非常適合新手學(xué)生的Java線程池優(yōu)化升級(jí)版
作者是一個(gè)來(lái)自河源的大三在校生,以下筆記都是作者自學(xué)之路的一些淺薄經(jīng)驗(yàn),如有錯(cuò)誤請(qǐng)指正,將來(lái)會(huì)不斷的完善筆記,幫助更多的Java愛(ài)好者入門(mén)2022-03-03
spring data jpa 創(chuàng)建方法名進(jìn)行簡(jiǎn)單查詢方式
這篇文章主要介紹了spring data jpa 創(chuàng)建方法名進(jìn)行簡(jiǎn)單查詢方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
SpringBoot AOP方式實(shí)現(xiàn)多數(shù)據(jù)源切換的方法
本篇文章主要介紹了SpringBoot AOP方式實(shí)現(xiàn)多數(shù)據(jù)源切換的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
淺談基于Token的WEB后臺(tái)認(rèn)證機(jī)制
這篇文章主要介紹了淺談基于Token的WEB后臺(tái)認(rèn)證機(jī)制,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
關(guān)于mybatis傳入?yún)?shù)一直為null的問(wèn)題
這篇文章主要介紹了關(guān)于mybatis傳入?yún)?shù)一直為null的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07

