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