매개 변수 메타데이터 사용

SQLServerPreparedStatement 또는 SQLServerCallableStatement 개체가 가진 매개 변수에 대해 쿼리하기 위해 Microsoft SQL Server JDBC 드라이버는 SQLServerParameterMetaData 클래스를 구현합니다. 이 클래스에는 단일 값 형태로 정보를 반환하는 다양한 필드와 메서드가 들어 있습니다.

SQLServerParameterMetaData 개체를 만들려면 SQLServerPreparedStatementSQLServerCallableStatement 클래스의 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 드라이버로 메타데이터 처리