本文實(shí)例講述了JDBC使用游標(biāo)實(shí)現(xiàn)分頁(yè)查詢(xún)的方法。分享給大家供大家參考,具體如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
/** * 一次只從數(shù)據(jù)庫(kù)中查詢(xún)最大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)類(lèi)型,能否更新記錄); // 游標(biāo)類(lèi)型: // ResultSet.TYPE_FORWORD_ONLY:只進(jìn)游標(biāo) // ResultSet.TYPE_SCROLL_INSENSITIVE:可滾動(dòng)。但是不受其他用戶(hù)對(duì)數(shù)據(jù)庫(kù)更改的影響。 // ResultSet.TYPE_SCROLL_SENSITIVE:可滾動(dòng)。當(dāng)其他用戶(hù)更改數(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); //最大查詢(xún)到第幾條記錄 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ù)中查詢(xún)所有記錄,然后通過(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(); } } |
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。