使用参数元数据

为了查询 SQLServerPreparedStatement 对象或 SQLServerCallableStatement 对象以了解其所包含的参数，Microsoft JDBC Driver for SQL Server 实现了 SQLServerParameterMetaData 类。该类包含很多以单个值的格式返回信息的字段和方法。

若要创建 SQLServerParameterMetaData 对象，可以使用 SQLServerPreparedStatement 和 SQLServerCallableStatement 类的 getParameterMetaData 方法。

在下面的实例中，将向此函数传递 SQL Server 2005 AdventureWorks 示例数据库的打开连接，使用 SQLServerCallableStatement 类的 getParameterMetaData 方法返回 SQLServerParameterMetaData 对象，然后使用 SQLServerParameterMetaData 对象的多种方法，显示 HumanResources.uspUpdateEmployeeHireInfo 存储过程中包含的参数的模式和类型有关信息。

    public static void getParameterMetaData(Connection con) {
       try {
          CallableStatement cstmt = con.prepareCall("{call HumanResources.uspUpdateEmployeeHireInfo(?, ?, ?, ?, ?)}");
          ParameterMetaData pmd = cstmt.getParameterMetaData();
          int count = pmd.getParameterCount();
          for (int i = 1; i <= count; i++) {
             System.out.println("TYPE: " + pmd.getParameterTypeName(i) + " MODE: " + pmd.getParameterMode(i));
          }
          cstmt.close();
       }
       catch (Exception e) {
          e.printStackTrace();
       }
    }

SQLServerParameterMetaData 类和预定义的语句一起使用时有一些限制。JDBC 驱动程序支持 SELECT、DELETE、INSERT 和 UPDATE 语句。但是，这些语句不能包含子查询。此外，JDBC 驱动程序还支持使用 IN、IS 和 LIKE 谓词。对于搜索条件，JDBC 驱动程序支持使用 IS、<、>、LIKE、>=、<=、NOT IN、<>、!>、!< 和 != 比较运算符。不支持 FREETEXT 运算符。

# 请参阅

使用 JDBC 驱动程序处理元数据
发送有关本主题的反馈至 Microsoft。

© 2012 Microsoft。保留所有权利。