Share via


unwrap-Methode (SQLServerCallableStatement)

JDBC-Treiber herunterladen

Gibt ein Objekt zurück, das die angegebene Schnittstelle implementiert, um den Zugriff auf die Microsoft JDBC-Treiber für SQL Server-spezifischen Methoden zu ermöglichen.

Syntax

  
public <T> T unwrap(Class<T> iface)  

Parameter

iface

Eine Klasse vom Typ T zum Definieren einer Schnittstelle.

Rückgabewert

Ein Objekt, von dem die angegebene Schnittstelle implementiert wird.

Ausnahmen

SQLServerException

Bemerkungen

Die unwrap-Methode wird von der java.sql.Wrapper-Schnittstelle definiert, die in den JDBC 4.0-Spezifikationen eingeführt wird.

Von den Anwendungen muss möglicherweise auf Microsoft JDBC-Treiber für SQL Server-spezifische JDBC-API-Erweiterungen zugegriffen werden. Die unwrap-Methode unterstützt das Entpacken in öffentliche, von diesem Objekt erweiterte Klassen, wenn von den Klassen Herstellererweiterungen verfügbar gemacht werden.

Das SQLServerCallableStatement-Element implementiert das ISQLServerPreparedStatement-Element, das vom ISQLServerStatement-Element erweitert wurde. Beim Aufrufen dieser Methode wird das Objekt in die folgenden Klassen entpackt: SQLServerStatement, SQLServerPreparedStatement und SQLServerCallableStatement.

Weitere Informationen finden Sie unter Wrapper und Schnittstellen.

Im folgenden Codebeispiel wird veranschaulicht, wie sich mithilfe der Methoden isWrapperFor und unwrap die Treibererweiterungen überprüfen und die herstellerspezifischen Methoden wie setResponseBuffering und getResponseBuffering aufrufen lassen.

public static void executeStoredProcedure(Connection con) {  
   try {  
    CallableStatement cstmt =   
       con.prepareCall("{call dbo.stored_proc_name(?, ?)}");  
  
    // The recommended way to access the JDBC   
    // Driver-specific methods is to use the JDBC 4.0 Wrapper   
    // functionality.   
    // The following code statements demonstrates how to use the   
    // isWrapperFor and unwrap methods  
    // to access the driver-specific response buffering methods.  
  
    if (cstmt.isWrapperFor(  
      com.microsoft.sqlserver.jdbc.SQLServerCallableStatement.class)) {  
     // The CallableStatement object can unwrap to   
     // SQLServerCallableStatement.  
     SQLServerCallableStatement SQLcstmt =   
     cstmt.unwrap(  
        com.microsoft.sqlserver.jdbc.SQLServerCallableStatement.class);  
     SQLcstmt.setResponseBuffering("adaptive");  
     System.out.println("Response buffering mode has been set to " +  
         SQLcstmt.getResponseBuffering());  
     }  
  
    if (cstmt.isWrapperFor(  
      com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.class)) {  
      // The CallableStatement object can unwrap to   
      // SQLServerPreparedStatement.                    
      SQLServerPreparedStatement SQLpstmt =   
       cstmt.unwrap(  
       com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.class);  
      SQLpstmt.setResponseBuffering("adaptive");  
      System.out.println("Response buffering mode has been set to " +  
          SQLpstmt.getResponseBuffering());  
    }  
    if (cstmt.isWrapperFor(  
      com.microsoft.sqlserver.jdbc.SQLServerStatement.class)) {  
  
      // The CallableStatement object can unwrap to SQLServerStatement.   
      SQLServerStatement SQLstmt =   
        cstmt.unwrap(  
        com.microsoft.sqlserver.jdbc.SQLServerStatement.class);  
      SQLstmt.setResponseBuffering("adaptive");  
      System.out.println("Response buffering mode has been set to " +  
      SQLstmt.getResponseBuffering());  
    }  
  }  
  catch (Exception e) {  
     e.printStackTrace();  
  }  
}   

Weitere Informationen

isWrapperFor-Methode (SQLServerCallableStatement)
SQLServerCallableStatement-Elemente
SQLServerCallableStatement-Klasse