Statement createStatement(int resultSetType,                           int resultSetConcurrency,                           int resultSetHoldability)                           throws SQLException

创建一个 Statement 对象,该对象将生成具有给定类型、并发性和可保存性的 ResultSet 对象。此方法与上述 createStatement 方法相同,但它允许重写默认结果集类型、并发性和可保存性。

 

参数:
resultSetType - 以下 ResultSet 常量之一:ResultSet.TYPE_FORWARD_ONLYResultSet.TYPE_SCROLL_INSENSITIVEResultSet.TYPE_SCROLL_SENSITIVE
resultSetConcurrency - 以下 ResultSet 常量之一:ResultSet.CONCUR_READ_ONLYResultSet.CONCUR_UPDATABLE
resultSetHoldability - 以下 ResultSet 常量之一:ResultSet.HOLD_CURSORS_OVER_COMMITResultSet.CLOSE_CURSORS_AT_COMMIT
返回:
一个新的 Statement 对象,该对象将生成具有给定类型、并发性和可保存性的 ResultSet 对象
抛出:
SQLException - 如果发生数据库访问错误,在关闭的连接上调用此方法,或者给定参数不是指定类型、并发性和可保存性的 ResultSet 常量
SQLFeatureNotSupportedException - 如果 JDBC 驱动程序不支持此方法,或者对于指定结果集类型、结果集可保存性和结果集并发性,此方法不受支持。
我们的例子用的参数是:
ResultSet.TYPE_SCROLL_INSENSITIVE 对于滚动不敏感,说白了就是结果集可以随便滚。
ResultSet.CONCUR_READ_ONLY  当并发访问这个结果集的时候,只能读取内容,不能改。
 1 package com.ayang.jdbc;
 2 
 3 import java.sql.*;
 4 
 5 public class TestScroll{
 6     public static void main(String[] args) {
 7         
 8         try {
 9             Class.forName("oracle.jdbc.driver.OracleDriver");
10             String  url = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL";
11             Connection  conn  =  DriverManager.getConnection(url,"scott","root");
12             
13             Statement  stmt = conn.createStatement(
14                     ResultSet.TYPE_SCROLL_INSENSITIVE,  //结果集滚动不敏感
15                     ResultSet.CONCUR_READ_ONLY);        //并发访问结果集时,只读。
16             
17             ResultSet  rs = stmt.executeQuery("select * from emp order by sal");
18             rs.next();
19             System.out.println(rs.getString("ename"));
20             rs.last();   //定位到最后一行
21             System.out.println(rs.getString(1));  //打印第一列
22             System.out.println(rs.isLast());      //是否是最后一行,boolean
23             System.out.println(rs.isAfterLast()); //倒数第二行
24             System.out.println(rs.getRow());   //得到是第几行。
25             rs.previous();
26             System.out.println(rs.getString(1));
27             rs.absolute(6);                //指定到第6行
28             System.out.println(rs.getString(1));
29             rs.close();
30             stmt.close();
31             conn.close();
32             
33         } catch (ClassNotFoundException e) {
34             
35             e.printStackTrace();
36         } catch (SQLException e) {
37             
38             e.printStackTrace();
39         }
40         
41     }
42 }

 

欢迎关注个人公众号一起交流学习: