Интерфейс обёртки
- Все известные под-интерфейсы:
-
CachedRowSet,CallableStatement,Connection,DatabaseMetaData,DataSource,FilteredRowSet,JdbcRowSet,JoinRowSet,ParameterMetaData,PreparedStatement,ResultSet,ResultSetMetaData,RowSet,RowSetMetaData,Statement,SyncResolver,WebRowSet
- Все известные реализующие классы:
RowSetMetaDataImpl
public interface Wrapper
Интерфейс для классов JDBC, предоставляющий возможность извлечения делегированного экземпляра, когда рассматриваемый экземпляр на самом деле является классом-прокси.
Многие реализации драйверов JDBC используют шаблон обёртки для предоставления расширений традиционного API JDBC, специфичных для источника данных. Разработчики могут захотеть получить доступ к этим ресурсам, которые обернуты (делегаты), как экземпляры классов-прокси, представляющие фактические ресурсы. Этот интерфейс описывает стандартный механизм доступа к этим обернутым ресурсам, представленным их прокси, для обеспечения прямого доступа к делегатам ресурсов.
- С:
- 1.6
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
isWrapperFor(Class<?> iface) |
Возвращает true, если данный объект реализует переданный интерфейс или является прямой или косвенной обёрткой для объекта, который это делает. |
<T> T |
unwrap(Class<T> iface) |
Возвращает объект, реализующий заданный интерфейс, чтобы получить доступ к методам, нестандартным для прокси, или к стандартным методам, не экспонированным прокси. |
Методы
unwrap
<T> T unwrap(Class<T> iface)
throws SQLException
Возвращает объект, реализующий заданный интерфейс, чтобы получить доступ к нестандартным методам или стандартным методам, не экспонированным прокси. Если получатель реализует интерфейс, то результатом является получатель или прокси для получателя. Если получатель является обёрткой, и обернутый объект реализует интерфейс, то результатом является обернутый объект или прокси для обернутого объекта. В противном случае возвращается результат рекурсивного вызова unwrap на обернутом объекте или прокси для этого результата. Если получатель не является обёрткой и не реализует интерфейс, то выбрасывается SQLException.
- Параметры типа:
-
T- тип класса, моделируемого этим объектом класса - Параметры:
-
iface- Класс, определяющий интерфейс, который должен реализовать результат. - Возвращает:
- объект, реализующий интерфейс. Может быть прокси для фактического реализующего объекта.
- Исключения:
-
SQLException- Если не найден объект, реализующий интерфейс - С:
- 1.6
isWrapperFor
boolean isWrapperFor(Class<?> iface)
throws SQLException
Возвращает true, если данный объект реализует переданный интерфейс или является прямой или косвенной обёрткой для объекта, который это делает. В противном случае возвращает false. Если этот объект реализует интерфейс, возвращает true; в противном случае, если это обёртка, возвращает результат рекурсивного вызова isWrapperFor на обернутом объекте. Если этот объект не реализует интерфейс и не является обёрткой, возвращает false. Этот метод должен реализовываться как операция с низкой стоимостью по сравнению с unwrap, чтобы вызывающие стороны могли использовать этот метод для избежания дорогостоящих вызовов unwrap, которые могут завершиться ошибкой. Если этот метод возвращает true, вызов unwrap с тем же аргументом должен быть успешным.
- Параметры:
-
iface- класс, определяющий интерфейс. - Возвращает:
- true, если данный объект реализует интерфейс или непосредственно или косвенно оборачивает объект, который это делает.
- Исключения:
-
SQLException- если возникла ошибка при определении, является ли данный объект обёрткой для объекта с заданным интерфейсом. - С:
- 1.6
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/Wrapper.html