Contenedores e interfaces

El controlador JDBC de Microsoft SQL Server es compatible con las interfaces que permiten crear un proxy de una clase y con contenedores que hacen posible el acceso a las extensiones para la API de JDBC que son específicas del controlador JDBC de Microsoft SQL Server mediante una interfaz de proxy.

Controladores

El controlador JDBC de SQL Server es compatible con la interfaz java.sql.Wrapper. Esta interfaz proporciona un mecanismo para obtener acceso a las extensiones para la API de JDBC que son específicas del controlador JDBC de SQL Server mediante una interfaz de proxy.

La interfaz java.sql.Wrapper define dos métodos: isWrapperFor y unwrap. El método isWrapperFor comprueba si el objeto de entrada especificado implementa esta interfaz. El método unwrap devuelve un objeto que implementa esta interfaz para permitir el acceso a los métodos específicos del controlador JDBC de SQL Server.

Los métodos isWrapperFor y unwrap se exponen de la siguiente forma:

Interfaces

Desde el controlador JDBC 3.0 de SQL Server, las interfaces están disponibles para que un servidor de aplicaciones obtenga acceso a un método específico del controlador desde la clase asociada. El servidor de aplicaciones puede incluir la clase si se crea un proxy, de forma que se exponga la funcionalidad propia del controlador JDBC de SQL Server desde una interfaz. El controlador JDBC de SQL Server es compatible con las interfaces que tengan los métodos y constantes propios del controlador JDBC SQL Server, de forma que un servidor de aplicaciones pueda crear un proxy de la clase.

Las interfaces se derivan de interfaces de Java estándar, por lo que se puede utilizar el mismo objeto una vez se haya desencapsulado para tener acceso a la funcionalidad específica del controlador o a la funcionalidad genérica del controlador JDBC de SQL Server.

Se agregaron las siguientes interfaces:

Ejemplo

Descripción

Este ejemplo muestra la forma en que se accede a la función específica del controlador JDBC de SQL Server desde un objeto DataSource. Es posible que un servidor de aplicaciones haya encapsulado a esta clase DataSource. Para obtener acceso a la función o constante específicas del controlador JDBC, puede desencapsular el origen de datos en una interfaz ISQLServerDataSource y utilizar las funciones que se declaran en esta interfaz.

Code

import javax.sql.*;
import java.sql.*;
import com.microsoft.sqlserver.jdbc.*;

public class UnWrapTest {
   public static void main(String[] args) {
      // This is a test.  This DataSource object could be something from an appserver 
      // which has wrapped the real SQLServerDataSource with its own wrapper
      SQLServerDataSource ds = new SQLServerDataSource();
      checkSendStringParametersAsUnicode(ds);
   }

   // Unwrap to the ISQLServerDataSource interface to access the getSendStringParametersAsUnicode function
   static void checkSendStringParametersAsUnicode(DataSource ds) {
      try {
         final ISQLServerDataSource sqlServerDataSource = ds.unwrap(ISQLServerDataSource.class);
         boolean sendStringParametersAsUnicode = sqlServerDataSource.getSendStringParametersAsUnicode();

         System.out.println("Send string as parameter value is:-" + sendStringParametersAsUnicode);

      } catch (SQLException sqlE) {
         System.out.println("Exception:-" + sqlE);
      }
   }
}

Vea también

Otros recursos

Describir los tipos de datos del controlador JDBC