Java Connection setHoldability() 方法及示例


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() 方法注册驱动程序:

//Registering the Driver
DriverManager.registerDriver(new com.mysql.jdbc.Driver());

使用 DriverManager 类的 getConnection() 方法获取连接:

//Getting the connection
String url = "jdbc:mysql://127.0.0.1/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 {
      //Registering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Getting the connection
      String url = "jdbc:mysql://127.0.0.1/mydatabase";
      Connection con = DriverManager.getConnection(url, "root", "password");
      System.out.println("Connection established......");
      //Setting the auto commit false
      con.setAutoCommit(false);
      //Setting the holdability to 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

更新于:2019年7月30日

343 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告