为了查询结果集以获取有关其包含的列的信息,Microsoft JDBC Driver for SQL Server 实现了 SQLServer ResultSetMetaData 类。 该类包含很多以单个值的形式返回信息的方法。
若要创建 SQLServerResultSetMetaData 对象,可以使用 SQLServerResultSet 类的 getMetaData 方法。
在以下示例中,将打开到 AdventureWorks2025 示例数据库的连接传递给函数,SQLServerResultSet 类的 getMetaData 方法用于返回 SQLServerResultSetMetaData 对象,然后使用 SQLServerResultSetMetaData 对象的各种方法显示结果集中包含的列的名称和数据类型的相关信息。
public static void getResultSetMetaData(Connection con) {
try(Statement stmt = con.createStatement();) {
String SQL = "SELECT TOP 10 * FROM Person.Contact";
ResultSet rs = stmt.executeQuery(SQL);
ResultSetMetaData rsmd = rs.getMetaData();
// Display the column name and type.
int cols = rsmd.getColumnCount();
for (int i = 1; i <= cols; i++) {
System.out.println("NAME: " + rsmd.getColumnName(i) + " " + "TYPE: " + rsmd.getColumnTypeName(i));
}
}
// Handle any errors that may have occurred.
catch (SQLException e) {
e.printStackTrace();
}
}