Compartir vía


Contenedores e interfaces

Descargar controlador JDBC

Microsoft JDBC Driver para SQL Server admite interfaces que permiten crear un proxy de una clase y contenedores que permiten acceder a extensiones para la API de JDBC que son específicas de Microsoft JDBC Driver para SQL Server mediante una interfaz de proxy.

Controladores

Microsoft JDBC Driver para SQL Server admite la interfaz java.sql.Wrapper. Esta interfaz proporciona un mecanismo para acceder a extensiones para la API de JDBC que son específicas de Microsoft JDBC Driver para 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 de Microsoft JDBC Driver para SQL Server.

los métodos isWrapperFor y Unwrap se exponen de la siguiente manera:

Interfaces

A partir de SQL Server JDBC Driver 3.0, las interfaces están disponibles para que un servidor de aplicaciones acceda a un método específico del controlador desde la clase asociada. El servidor de aplicaciones puede incluir la clase si crea un proxy, de forma que se exponga la funcionalidad específica de Microsoft JDBC Driver para SQL Server desde una interfaz. Microsoft JDBC Driver para SQL Server admite interfaces que tienen los métodos y constantes propios de Microsoft JDBC Driver para 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 usar el mismo objeto una vez que se haya desencapsulado para acceder a funcionalidad específica del controlador o a funcionalidad genérica de Microsoft JDBC Driver para SQL Server.

Se agregaron las siguientes interfaces:

Ejemplo

Descripción

En este ejemplo se muestra cómo acceder a una función específica de Microsoft JDBC Driver para SQL Server desde un objeto DataSource. Es posible que un servidor de aplicaciones haya encapsulado esta clase DataSource. Para acceder a la función o constante específica del controlador JDBC, puede desencapsular el origen de datos en una interfaz ISQLServerDataSource y usar las funciones que se declaran en esta interfaz.

Código

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

Consulte también

Descripción de los tipos de datos del controlador JDBC