Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
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:
- isWrapperFor Method (SQLServerCallableStatement)
- unwrap-metoden (SQLServerCallableStatement)
- isWrapperFor-metoden (SQLServerConnectionPoolDataSource)
- unwrap-metoden (SQLServerConnectionPoolDataSource)
- isWrapperFor-metoden (SQLServerDataSource)
- unwrap-metoden (SQLServerDataSource)
- isWrapperFor-metoden (SQLServerPreparedStatement)
- unwrap-metoden (SQLServerPreparedStatement)
- isWrapperFor-metoden (SQLServerStatement)
- unwrap-metoden (SQLServerStatement)
- isWrapperFor-metoden (SQLServerXADataSource)
- unwrap-metoden (SQLServerXADataSource)
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:
- ISQLServerCallableStatement
- ISQLServerConnection
- ISQLServerDataSource
- ISQLServerPreparedStatement
- ISQLServerResultSet
- ISQLServerStatement
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);
}
}
}