Java Connection setHoldability() 方法示例

jdbcjava 8object oriented programmingprogramming更新于 2025/7/18 2:52:17

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

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

参数

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

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

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

将可保持性更改为所需值 −

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

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

使用 DriverManager 类的 getConnection() 方法获取连接,类型为 −

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

使用 Connection 接口的 setHoldability() 方法将 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("连接已建立......");
      //设置自动提交为 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());
   }
}

输出

连接已建立......
ResultSet object is open

相关文章