DatabaseMetaData getResultSetHoldability() 方法及示例


ResultSet 的可儲存性決定了當使用 Connection 介面的 commit() 方法提交包含該遊標/ResultSet 物件的事務時,ResultSet 物件(遊標)是否應該關閉或保持開啟狀態。

**getResultSetHoldability()** 方法是 DatabaseMetaData 介面的方法,它檢索底層資料庫的 ResultSet 物件的預設可儲存性。

此方法返回一個整數,表示預設的 ResultSet 可儲存性,值為 1 或 2,其中:

  • 1 表示值 **HOLD_CURSORS_OVER_COMMIT**。如果 ResultSet 物件的可儲存性設定為該值,則每當你使用 Connection 介面的 commit() 方法提交/儲存事務時,在當前事務中建立的(已開啟的)ResultSet 物件將保持開啟狀態。
  • 2 表示值 **CLOSE_CURSORS_AT_COMMIT**。如果 ResultSet 物件的可儲存性設定為該值,則每當你使用 Connection 介面的 commit() 方法提交/儲存事務時,在當前事務中建立的(已開啟的)ResultSet 物件將關閉。

獲取 DatabaseMetaData 物件

  • 確保你的資料庫正在執行。
  • 使用 **DriverManager** 類的 **registerDriver()** 方法註冊驅動程式。傳遞與底層資料庫對應的驅動程式類的物件。
  • 使用 DriverManager 類的 **getConnection()** 方法獲取連線物件。將資料庫 URL、使用者名稱和資料庫使用者的密碼作為字串變數傳遞。
  • 使用 Connection 介面的 **getMetaData()** 方法獲取當前連線的 **DatabaseMetaData** 物件。

最後,透過呼叫 DatabaseMetaData 介面的 **getResultSetHoldability()** 方法,獲取底層資料庫對 ResultSets 可儲存性的預設值。

以下 JDBC 程式建立與 MySQL 資料庫的連線,並檢索底層資料庫的預設 ResultSet 可儲存性。

示例

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseMetadata_getResultSetHoldability {
   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:///mydatabase";
      Connection con = DriverManager.getConnection(url, "root", "password");
      System.out.println("Connection established......");
      //Retrieving the meta data object
      DatabaseMetaData metaData = con.getMetaData();
      //Retrieving the ResultSet holdability of the current database
      int holdability = metaData.getResultSetHoldability();
      System.out.print("ResultSet holdability of the underlying database: ");
      switch(holdability) {
         case 1 :
            System.out.print("HOLD_CURSORS_OVER_COMMIT");
         break;
         case 2 :
            System.out.print("CLOSE_CURSORS_AT_COMMIT");
         break;
      }
   }
}

輸出

Connection established......
ResultSet holdability of the underlying database: HOLD_CURSORS_OVER_COMMIT

更新於:2019年7月30日

88 次檢視

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.