Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zwraca obiekt, który implementuje określony interfejs, aby zezwolić na dostęp do sterownika JDBC firmy Microsoft dla metod specyficznych dla programu SQL Server.
Składnia
public <T> T unwrap(Class<T> iface)
Parametry
interfejs
Klasa typu T definiująca interfejs.
Wartość zwracana
Obiekt, który implementuje określony interfejs.
Wyjątki
Uwagi
Metoda unwrap jest definiowana przez interfejs java.sql.Wrapper, który jest wprowadzany w specyfikacji JDBC 4.0.
Aplikacje mogą wymagać dostępu do rozszerzeń interfejsu API JDBC specyficznego dla sterownika JDBC firmy Microsoft dla programu SQL Server. Metoda odpakowania obsługuje odpisanie do klas publicznych, które rozszerza ten obiekt, jeśli klasy uwidaczniają rozszerzenia dostawcy.
SqlServerCallableStatement implementuje ISQLServerPreparedStatement, który został rozszerzony z ISQLServerStatement. Po wywołaniu tej metody obiekt unwrapuje do następujących klas: SQLServerStatement, SQLServerPreparedStatement i SQLServerCallableStatement.
Aby uzyskać więcej informacji, zobacz Otoki i interfejsy.
W poniższym przykładzie kodu pokazano, jak używać metod isWrapperFor i odpakowywać w celu sprawdzenia rozszerzeń sterowników i wywołania metod specyficznych dla dostawcy, takich jak setResponseBuffering i 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();
}
}
Zobacz też
isWrapperFor, metoda (SQLServerCallableStatement)
SqlServerCallableStatement — elementy członkowskie
SQLServerCallableStatement, klasa