Code
1 package com.jdbc.OracleTest;
2
3 import java.sql.*;
4
5 /**
6 *
7 * 测试可滚动的结果集操作
8 */
9 public class ScrollResultSetTest {
10
11 public static void main(String[] args) {
12 String connString = "oracle.jdbc.driver.OracleDriver";
13 Connection conn=null;
14 try {
15
16 Class.forName(connString);
17 conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ora92","scott","1234");
18 //CONCUR_READ_ONLY 该常量指示不可以更新的 ResultSet 对象的并发模式。
19 //TYPE_SCROLL_INSENSITIVE 该常量指示可滚动但通常不受 ResultSet 底层数据更改影响的 ResultSet 对象的类型。
20 Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
21 ResultSet rs = stmt.executeQuery("select * from emp");
22
23 //下一条记录
24 if(rs.next())
25 {
26 PrintInfo("next",rs);
27 }else
28 {
29 System.out.println("next:没有记录了");
30 }
31 //最后一条记录
32 if(rs.last())
33 {
34 PrintInfo("last",rs);
35 }else
36 {
37 System.out.println("last:没有记录");
38 }
39
40 //前一条记录
41 if(rs.previous())
42 {
43 PrintInfo("previous",rs);
44 }else
45 {
46 System.out.println("previous:已经到第一条了");
47 }
48 //绝对定位到哪一行
49 rs.absolute(1);
50 PrintInfo("absolute",rs);
51
52 //移动最后一行的下一个位置
53 rs.afterLast();
54 System.out.println("afterLast已经到了最后一行的后面");
55
56
57
58 } catch (Exception e) {
59 e.printStackTrace();
60 }
61 finally
62 {
63 try {
64 conn.close();
65 } catch (SQLException e) {
66 // TODO Auto-generated catch block
67 e.printStackTrace();
68 }
69 }
70 }
71
72 /**
73 * 打印输出的方法
74 * @param rs
75 */
76 private static void PrintInfo(String str ,ResultSet rs)
77 {
78
79 try {
80 System.out.println(str+" :"+rs.getRow()+ " 行:"+rs.getString("ename"));
81 } catch (SQLException e) {
82 // TODO Auto-generated catch block
83 e.printStackTrace();
84 }
85 }
86 }
87
88
1 package com.jdbc.OracleTest;
2
3 import java.sql.*;
4
5 /**
6 *
7 * 测试可滚动的结果集操作
8 */
9 public class ScrollResultSetTest {
10
11 public static void main(String[] args) {
12 String connString = "oracle.jdbc.driver.OracleDriver";
13 Connection conn=null;
14 try {
15
16 Class.forName(connString);
17 conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ora92","scott","1234");
18 //CONCUR_READ_ONLY 该常量指示不可以更新的 ResultSet 对象的并发模式。
19 //TYPE_SCROLL_INSENSITIVE 该常量指示可滚动但通常不受 ResultSet 底层数据更改影响的 ResultSet 对象的类型。
20 Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
21 ResultSet rs = stmt.executeQuery("select * from emp");
22
23 //下一条记录
24 if(rs.next())
25 {
26 PrintInfo("next",rs);
27 }else
28 {
29 System.out.println("next:没有记录了");
30 }
31 //最后一条记录
32 if(rs.last())
33 {
34 PrintInfo("last",rs);
35 }else
36 {
37 System.out.println("last:没有记录");
38 }
39
40 //前一条记录
41 if(rs.previous())
42 {
43 PrintInfo("previous",rs);
44 }else
45 {
46 System.out.println("previous:已经到第一条了");
47 }
48 //绝对定位到哪一行
49 rs.absolute(1);
50 PrintInfo("absolute",rs);
51
52 //移动最后一行的下一个位置
53 rs.afterLast();
54 System.out.println("afterLast已经到了最后一行的后面");
55
56
57
58 } catch (Exception e) {
59 e.printStackTrace();
60 }
61 finally
62 {
63 try {
64 conn.close();
65 } catch (SQLException e) {
66 // TODO Auto-generated catch block
67 e.printStackTrace();
68 }
69 }
70 }
71
72 /**
73 * 打印输出的方法
74 * @param rs
75 */
76 private static void PrintInfo(String str ,ResultSet rs)
77 {
78
79 try {
80 System.out.println(str+" :"+rs.getRow()+ " 行:"+rs.getString("ename"));
81 } catch (SQLException e) {
82 // TODO Auto-generated catch block
83 e.printStackTrace();
84 }
85 }
86 }
87
88