定義如下:
public interface ResultSetMetaData extends Wrapper
可用於擷取關於 ResultSet 對象中列的類型和屬性資訊的對象。以下程式碼片段建立 ResultSet 對象 rs,建立 ResultSetMetaData 對象 rsmd,並使用 rsmd 尋找 rs 有多少列,以及 rs 中的第一列是否可以在 WHERE 子句中使用。
例如: package ResultSetMetaData; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; public class test { public static void main(String[] args) { Connection conn=null; Statement stmt=null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:oracle12c", "c##scott", "tiger"); stmt = conn.createStatement(); //建立 ResultSet 對象 rs ResultSet rs = stmt.executeQuery("select * from test"); //建立 ResultSetMetaData 對象 rsmd ResultSetMetaData rsmd = rs.getMetaData(); //使用 rsmd 尋找 rs 有多少列 int numberOfColumns = rsmd.getColumnCount(); // rs 中的第一列是否可以在 WHERE 子句中使用 boolean b = rsmd.isSearchable(1); System.out.println("資料中總共有"+numberOfColumns+"列"); System.out.println("rs 中的第一列是否可以在 WHERE 子句中使用"+b); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } } 我們還可以擷取更多的資訊: String getCatalogName(int column) 擷取指定列的表目錄名稱。 String getColumnClassName(int column) 如果調用方法 ResultSet.getObject 從列中擷取值,則返回構造其執行個體的 Java 類的完全限定名稱。 int getColumnCount() 返回此 ResultSet 對象中的列數。 int getColumnDisplaySize(int column) 指示指定列的最大標準寬度,以字元為單位。 String getColumnLabel(int column) 擷取用於列印輸出和顯示的指定列的建議標題。 String getColumnName(int column) 擷取指定列的名稱。 int getColumnType(int column) 擷取指定列的 SQL 類型。 String getColumnTypeName(int column) 擷取指定列的資料庫特定的類型名稱。 int getPrecision(int column) 擷取指定列的指定列寬。 int getScale(int column) 擷取指定列的小數點右邊的位元。 String getSchemaName(int column) 擷取指定列的表模式。 String getTableName(int column) 擷取指定列的名稱。 boolean isAutoIncrement(int column) 指示是否自動為指定列進行編號。 boolean isCaseSensitive(int column) 指示列的大小寫是否有關係。 boolean isCurrency(int column) 指示指定的列是否是一個雜湊碼值。 boolean isDefinitelyWritable(int column) 指示在指定的列上進行寫操作是否明確可以獲得成功。 int isNullable(int column) 指示指定列中的值是否可以為 null。 boolean isReadOnly(int column) 指示指定的列是否明確不可寫入。 boolean isSearchable(int column) 指示是否可以在 where 子句中使用指定的列。 boolean isSigned(int column) 指示指定列中的值是否帶加號或減號。 boolean isWritable(int column) 指示在指定的列上進行寫操作是否可以獲得成功。