Condividi tramite


Metodo unwrap (SQLServerCallableStatement)

Scaricare il driver JDBC

Restituisce un oggetto che implementa l'interfaccia specificata per consentire l'accesso ai metodi specifici per Microsoft JDBC Driver per SQL Server.

Sintassi

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

Parametri

iface

Classe di tipo T che definisce un'interfaccia.

Valore restituito

Oggetto che implementa l'interfaccia specificata.

Eccezioni

SQLServerException

Osservazioni

Il metodo unwrap è definito dall'interfaccia java.sql.Wrapper, introdotta nella specifica JDBC 4.0.

È possibile che le applicazioni debbano accedere alle estensioni dell'API JDBC specifiche del driver JDBC Microsoft per SQL Server. Il metodo unwrap supporta l'annullamento del wrapping nelle classi pubbliche estese dall'oggetto, se le classi espongono estensioni del fornitore.

SQLServerCallableStatement implementa l'oggetto ISQLServerPreparedStatement, che viene esteso da ISQLServerStatement. Quando viene chiamato questo metodo, l'oggetto annulla il wrapping nelle classi seguenti: SQLServerStatement, SQLServerPreparedStatement e SQLServerCallableStatement.

Per altre informazioni, vedere Wrapper e interfacce.

Nell'esempio di codice seguente viene illustrato come usare i metodi isWrapperFor e unwrap per controllare le estensioni del driver e richiamare i metodi specifici del fornitore, ad esempio setResponseBuffering e getResponseBuffering.

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();  
  }  
}   

Vedere anche

Metodo isWrapperFor (SQLServerCallableStatement)
Membri di SQLServerCallableStatement
Classe SQLServerCallableStatement