Оболочки и интерфейсы
Драйвер Microsoft JDBC Driver для SQL Server поддерживает интерфейсы, позволяющие создавать классы-посредники и оболочки для доступа к расширениям API JDBC, определяемым драйвером Microsoft JDBC Driver для SQL Server, через интерфейс-посредник.
Оболочки
Драйвер Microsoft JDBC Driver для SQL Server поддерживает интерфейс java.sql.Wrapper. Этот интерфейс обеспечивает механизм доступа к расширениям API JDBC, определяемым драйвером Microsoft JDBC Driver для SQL Server, через интерфейс-посредник.
Интерфейс Java. SQL. оберток определяет два метода: isWrapperFor и Unwrap. Метод isWrapperFor проверяет, реализует ли указанный объект ввода данный интерфейс. Метод unwrap возвращает объект, в котором реализован указанный интерфейс, для обеспечения доступа к методам, определяемым драйвером Microsoft JDBC Driver для SQL Server.
Методы isWrapperFor и unwrap предоставляются следующим образом:
- Метод isWrapperFor (SQLServerCallableStatement)
- Метод unwrap (SQLServerCallableStatement)
- Метод isWrapperFor (SQLServerConnectionPoolDataSource)
- Метод unwrap (SQLServerConnectionPoolDataSource)
- Метод isWrapperFor (SQLServerDataSource)
- Метод unwrap (SQLServerDataSource)
- Метод isWrapperFor (SQLServerPreparedStatement)
- Метод unwrap (SQLServerPreparedStatement)
- Метод isWrapperFor (SQLServerStatement)
- Метод unwrap (SQLServerStatement)
- Метод isWrapperFor (SQLServerXADataSource)
- Метод unwrap (SQLServerXADataSource)
Интерфейсы
Начиная с версии 3.0 драйвера JDBC для SQL Server, можно использовать интерфейсы для сервера приложений, которые предоставляют доступ к методу, определяемому драйвером, из связанного класса. Сервер приложений может поместить класс в оболочку, создав класс-посредник, обеспечивающий определяемые драйвером Microsoft JDBC Driver для SQL Server функции через интерфейс. Драйвер Microsoft JDBC Driver для SQL Server поддерживает интерфейсы, имеющие методы и константы, определяемые драйвером Microsoft JDBC Driver для SQL Server, что позволяет серверу приложений создать для класса класс-посредник.
Эти интерфейсы являются производными от стандартных интерфейсов Java, поэтому тот же объект может быть использован и после получения из оболочки для доступа к функциям, определяемым драйвером, либо к стандартным функциям драйвера Microsoft JDBC Driver для SQL Server.
Добавлены следующие интерфейсы:
- ISQLServerCallableStatement
- ISQLServerConnection
- ISQLServerDataSource
- ISQLServerPreparedStatement
- ISQLServerResultSet
- ISQLServerStatement
Пример
Описание
В образце показано, как получить доступ к функции, определяемой драйвером Microsoft JDBC Driver для SQL Server, через объект DataSource. Класс DataSource может быть помещен в оболочку сервером приложений. Для доступа к функции или константе, определяемой драйвером JDBC, можно снять оболочку с datasource для интерфейса ISQLServerDataSource и использовать функции, объявленные в данном интерфейсе.
Код
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);
}
}
}