Dela via


Omslutningar och gränssnitt

Ladda ned JDBC-drivrutin

Microsoft JDBC-drivrutinen för SQL Server stöder gränssnitt som gör att du kan skapa en proxy för en klass och omslutningar som gör att du kan komma åt tillägg till JDBC-API:et som är specifika för Microsoft JDBC-drivrutinen för SQL Server via ett proxygränssnitt.

Omslag

Microsoft JDBC-drivrutinen för SQL Server stöder gränssnittet java.sql.Wrapper. Det här gränssnittet ger en mekanism för att komma åt tillägg till JDBC-API:et som är specifika för Microsoft JDBC-drivrutinen för SQL Server via ett proxygränssnitt.

Gränssnittet java.sql.Wrapper definierar två metoder: isWrapperFor och unwrap. metoden isWrapperFor kontrollerar om det angivna indataobjektet implementerar det här gränssnittet. Metoden unwrap returnerar ett objekt som implementerar det här gränssnittet för att tillåta åtkomst till Microsoft JDBC-drivrutinen för SQL Server-specifika metoder.

isWrapperFor och unwrap-metoderna exponeras på följande sätt:

Gränssnitt

Från och med SQL Server JDBC Driver 3.0 är gränssnitt tillgängliga för en programserver för åtkomst till en drivrutinsspecifik metod från den associerade klassen. Programservern kan omsluta klassen genom att skapa en proxy som exponerar Microsoft JDBC-drivrutinen för SQL Server-specifika funktioner från ett gränssnitt. Microsoft JDBC-drivrutinen för SQL Server stöder gränssnitt som har Microsoft JDBC-drivrutinen för SQL Server-specifika metoder och konstanter så att en programserver kan skapa en proxy för klassen.

Gränssnitten härleds från Java-standardgränssnitt så att du kan använda samma objekt när det har packats upp för att komma åt drivrutinsspecifika funktioner eller allmän Microsoft JDBC-drivrutin för SQL Server-funktioner.

Följande gränssnitt läggs till:

Example

Description

Det här exemplet visar hur du får åtkomst till en Microsoft JDBC-drivrutin för SQL Server-specifik funktion från ett DataSource-objekt. Den här DataSource-klassen kan ha omslutits av en programserver. För att få åtkomst till den JDBC-drivrutinsspecifika funktionen eller konstanten kan du packa upp datakällan till ett ISQLServerDataSource-gränssnitt och använda funktionerna som deklarerats i det här gränssnittet.

Kod

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

Se även

Förstå JDBC-drivrutinsdatatyperna