Java Connection setHoldability()方法与示例

ResultSet holdability确定在使用连接接口的commit()方法提交事务(包含所述游标/ResultSet对象)时,是关闭还是保持打开ResultSet对象(游标)。

Connection 接口的setHoldability() 方法用于将此连接(使用此连接创建)中ResultSet对象的可保存性设置为所需值。

参数

此方法接受代表您要设置的ResultSet可保存性值的整数值。ResultSet接口提供两个值来指定ResultSet的可保存性,即-

  • CLOSE_CURSORS_AT_COMMIT:如果ResultSet对象的可保存性设置为此值。每当您使用commit()Connection接口的方法提交/保存事务时,在当前事务中创建的ResultSet对象(已打开)将被关闭。

  • HOLD_CURSORS_OVER_COMMIT:如果ResultSet对象的可保存性设置为此值。每当您使用commit()Connection接口的方法提交/保存事务时,在当前事务中创建的ResultSet对象(已打开)将保持打开状态

要将可保持性更改/设置为所需值-

使用registerDriver()DriverManager类的方法将驱动程序注册为-

//注册驱动程序
DriverManager.registerDriver(new com.mysql.jdbc.Driver());

使用getConnection()DriverManager类的方法获取连接,如下所示:

//获得连接
String url = "jdbc:mysql://localhost/mydatabase";
Connection con = DriverManager.getConnection(url, "root", "password");

使用setHoldability()Connection接口的方法将ResultSet的可保存性设置为所需的值-

con.setHoldability(ResultSet.CLOSE_CURSORS_AT_COMMIT);

示例

以下JDBC程序建立与数据库的连接,并将可保存性值设置为CLOSE_CURSORS_AT_COMMIT。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Connection_setHoldability {
   public static void main(String args[]) throws SQLException {
      //注册驱动程序
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //获得连接
      String url = "jdbc:mysql://localhost/mydatabase";
      Connection con = DriverManager.getConnection(url, "root", "password");
      System.out.println("Connection established......");
      //将自动提交设置为false-
      con.setAutoCommit(false);
      //将可保存性设置为CLOSE_CURSORS_AT_COMMIT-
      con.setHoldability(ResultSet.CLOSE_CURSORS_AT_COMMIT);
      System.out.println("ResultSet holdability value has been changed to "+con.getHoldability());
   }
}

输出结果

Connection established......
ResultSet object is open