Module java.sql
Package java.sql

Interface Wrapper

所有已知的子接口:
CachedRowSet, CallableStatement, Connection, DatabaseMetaData, DataSource, FilteredRowSet, JdbcRowSet, JoinRowSet, ParameterMetaData, PreparedStatement, ResultSet, ResultSetMetaData, RowSet, RowSetMetaData, Statement, SyncResolver, WebRowSet
所有已知的实现类:
RowSetMetaDataImpl

public interface Wrapper
JDBC类的接口,提供在实例实际上是代理类时检索委托实例的能力。

许多JDBC驱动程序实现使用包装器模式来提供超出传统JDBC API的特定于数据源的扩展。开发人员可能希望访问这些被包装的资源(委托)作为代表实际资源的代理类实例。该接口描述了一种标准机制,用于访问这些由其代理表示的被包装资源,以允许直接访问资源委托。

自:
1.6
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    isWrapperFor(Class<?> iface)
    如果此对象实现了接口参数或直接或间接地是对象的包装器,则返回true。
    <T> T
    unwrap(Class<T> iface)
    返回一个实现给定接口的对象,以允许访问非标准方法或代理未公开的标准方法。
  • Method Details

    • unwrap

      <T> T unwrap(Class<T> iface) throws SQLException
      返回一个实现给定接口的对象,以允许访问非标准方法或代理未公开的标准方法。如果接收者实现了接口,则结果是接收者或接收者的代理。如果接收者是一个包装器并且被包装的对象实现了接口,则结果是被包装的对象或被包装的对象的代理。否则,返回调用被包装对象或该结果的代理的unwrap的结果。如果接收者不是包装器且未实现接口,则抛出SQLException
      类型参数:
      T - 由此Class对象建模的类的类型
      参数:
      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