Java DatabaseMetaData 的 supportsResultSetHoldability() 方法及示例
ResultSet 的保持性決定了當使用 Connection 介面的 commit() 方法提交包含該遊標/ResultSet 物件的事務時,ResultSet 物件(遊標)是否應該關閉或保持開啟狀態。
ResultSet 介面提供兩個值來指定 ResultSet 的保持性:
CLOSE_CURSORS_AT_COMMIT: 如果 ResultSet 物件的保持性設定為該值,則每當使用 Connection 介面的 commit() 方法提交/儲存事務時,在當前事務中建立的(已開啟的)ResultSet 物件將被關閉。
HOLD_CURSORS_OVER_COMMIT: 如果 ResultSet 物件的保持性設定為該值,則每當使用 Connection 介面的 commit() 方法提交/儲存事務時,在當前事務中建立的(已開啟的)ResultSet 物件將保持開啟狀態。
DatabaseMetaData 介面的 supportsResultSetHoldability() 方法用於確定底層資料庫是否支援指定的 ResultSet 保持性。此方法接受表示 ResultSet 保持性值的整數,並返回一個布林值:
如果底層資料庫支援儲存過程,則為 True。
如果底層資料庫不支援儲存過程,則為 False。
要確定底層資料庫是否支援儲存過程:
確保您的資料庫正在執行。
使用 DriverManager 類的 registerDriver() 方法註冊驅動程式。傳遞與底層資料庫對應的驅動程式類的物件。
使用 DriverManager 類的 getConnection() 方法獲取連線物件。將資料庫 URL、使用者名稱和資料庫使用者的密碼作為字串變數傳遞。
使用 Connection 介面的 getMetaData() 方法獲取當前連線的 DatabaseMetaData 物件。
最後,呼叫 ResultSetMetaData 介面的 supportsResultSetHoldability() 方法,並將返回值儲存在布林變數(例如 bool)中。如果該值為 true,則底層資料庫支援儲存過程;否則不支援。
以下 JDBC 程式建立與 MySQL 資料庫的連線,並確定並列印它是否支援指定的 ResultSet 保持性。
示例
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DatabaseMetadata_supportsResultSetHoldability {
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();
//Determining whether the underlying database supports the specified concurrency
boolean bool = metaData.supportsResultSetHoldability(ResultSet.CLOSE_CURSORS_AT_COMMIT);
if(bool) {
System.out.println("Underlying database supports the specified holdability");
} else {
System.out.println("Underlying database does not supports the specified holdability");
}
}
}輸出
Connection established...... Underlying database does not supports the specified holdability
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP