Java Connection getHoldability() 方法示例

jdbcjava 8object oriented programmingprogramming更新于 2025/7/18 6:04:17

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

Connection  接口的 getHoldability()  方法用于检索并返回此连接中 ResultSet 对象的当前可保持性值。

此方法返回一个整数值,表示当前 ResultSet 可保持性,该值可以是 1 或 2,其中

  • 1 表示值 HOLD_CURSORS_OVER_COMMIT。

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

  • 2 表示值 CLOSE_CURSORS_AT_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 接口的 getHoldability() 方法获取当前 ResultSet 的可保持性值,参数为 −

con.getHoldability();

以下 JDBC 程序将与数据库建立连接并获取当前可保持性值。

示例

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Connection_getHoldability {
   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("HOLD_CURSORS_OVER_COMMIT: "+ResultSet.HOLD_CURSORS_OVER_COMMIT);
      System.out.println("CLOSE_CURSORS_AT_COMMIT: "+ResultSet.CLOSE_CURSORS_AT_COMMIT);
      System.out.println("Current ResultSet holdability value is: "+con.getHoldability());
   }
}

输出

连接已建立......
HOLD_CURSORS_OVER_COMMIT: 1
CLOSE_CURSORS_AT_COMMIT: 2
Current ResultSet holdability value is: 2

相关文章