Module java.sql.rowset
Package javax.sql.rowset

Class RowSetMetaDataImpl

java.lang.Object
javax.sql.rowset.RowSetMetaDataImpl
所有已实现的接口:
Serializable, ResultSetMetaData, Wrapper, RowSetMetaData

public class RowSetMetaDataImpl extends Object implements RowSetMetaData, Serializable
提供了设置和获取有关RowSet对象列的元数据信息的方法实现。一个RowSetMetaDataImpl对象跟踪行集中的列数,并维护每列的内部列属性数组。

RowSet对象在内部创建一个RowSetMetaDataImpl对象,以便设置和检索有关其列的信息。

注意: 在RowSet对象包含数据之前,RowSetMetaDataImpl对象中的所有元数据应被视为不可用。因此,在RowSet对象包含数据之前调用任何检索信息的RowSetMetaDataImpl方法被定义为具有未指定的行为。

自从:
1.5
参见:
  • Field Summary

    Fields declared in interface java.sql.ResultSetMetaData

    columnNoNulls, columnNullable, columnNullableUnknown
  • Constructor Summary

    Constructors
    Constructor
    Description
    构造一个RowSetMetaDataImpl对象。
  • Method Summary

    Modifier and Type
    Method
    Description
    getCatalogName(int columnIndex)
    检索指定列的值来自的表的目录名称。
    getColumnClassName(int columnIndex)
    检索指定列中的值将映射到的Java编程语言中的类的完全限定名称。
    int
    检索为此RowSetMetaDataImpl对象创建的RowSet对象中的列数。
    int
    getColumnDisplaySize(int columnIndex)
    检索指定列的正常最大字符宽度。
    getColumnLabel(int columnIndex)
    检索用于打印和显示的指定列的建议列标题。
    getColumnName(int columnIndex)
    检索指定列的名称。
    int
    getColumnType(int columnIndex)
    检索存储在指定列中的值的SQL类型的类型代码(java.sql.Types常量之一)。
    getColumnTypeName(int columnIndex)
    检索存储在指定列中的值的特定于DBMS的类型名称。
    int
    getPrecision(int columnIndex)
    检索存储在指定列中的值的总位数。
    int
    getScale(int columnIndex)
    检索存储在指定列中的值的小数点右侧的位数。
    getSchemaName(int columnIndex)
    检索指定列的值来自的表的模式名称。
    getTableName(int columnIndex)
    检索指定列的值来自的表的名称。
    boolean
    isAutoIncrement(int columnIndex)
    指示存储在指定列中的值是否自动编号,因此只读。
    boolean
    isCaseSensitive(int columnIndex)
    指示指定列名称的大小写是否重要。
    boolean
    isCurrency(int columnIndex)
    指示存储在指定列中的值是否为现金值。
    boolean
    isDefinitelyWritable(int columnIndex)
    指示对指定列的写操作是否肯定成功。
    int
    isNullable(int columnIndex)
    检索一个常量,指示是否可能在指定列中存储NULL值。
    boolean
    isReadOnly(int columnIndex)
    指示指定列是否绝对不可写,因此只读。
    boolean
    isSearchable(int columnIndex)
    指示存储在指定列中的值是否可用于WHERE子句。
    boolean
    isSigned(int columnIndex)
    指示存储在指定列中的值是否为有符号数。
    boolean
    isWrapperFor(Class<?> interfaces)
    如果此对象实现接口参数或直接或间接地是对象的包装器,则返回true。
    boolean
    isWritable(int columnIndex)
    指示对指定列的写操作是否可能成功。
    void
    setAutoIncrement(int columnIndex, boolean property)
    将指定列是否自动编号(因此只读)设置为给定的boolean值。
    void
    setCaseSensitive(int columnIndex, boolean property)
    将指定列的名称是否区分大小写设置为给定的boolean
    void
    setCatalogName(int columnIndex, String catalogName)
    将指定列的表的目录名称设置为指定的catalogName
    void
    setColumnCount(int columnCount)
    将为此RowSetMetaDataImpl对象创建的RowSet对象中的列数设置为给定的数字。
    void
    setColumnDisplaySize(int columnIndex, int size)
    将指定列中的正常最大字符数设置为给定的数字。
    void
    setColumnLabel(int columnIndex, String label)
    将用于打印和显示的指定列标签(如果有)设置为label
    void
    setColumnName(int columnIndex, String columnName)
    将指定列的列名设置为给定的名称。
    void
    setColumnType(int columnIndex, int SQLType)
    将存储在指定列中的值的SQL类型代码设置为来自类java.sql.Types的给定类型代码。
    void
    setColumnTypeName(int columnIndex, String typeName)
    将数据源用于存储在指定列中的值的类型名称设置为给定的类型名称。
    void
    setCurrency(int columnIndex, boolean property)
    将存储在指定列中的值是否为现金值设置为给定的boolean
    void
    setNullable(int columnIndex, int property)
    将存储在指定列中的值是否可以设置为NULL设置为来自接口ResultSetMetaData的给定常量。
    void
    setPrecision(int columnIndex, int precision)
    将存储在指定列中的值的十进制位数总数设置为给定的数字。
    void
    setScale(int columnIndex, int scale)
    将存储在指定列中的值的小数点右侧的位数设置为给定的数字。
    void
    setSchemaName(int columnIndex, String schemaName)
    将指定列的表的模式名称(如果有)设置为schemaName
    void
    setSearchable(int columnIndex, boolean property)
    将存储在指定列中的值是否可以在WHERE子句中使用设置为给定的boolean值。
    void
    setSigned(int columnIndex, boolean property)
    将存储在指定列中的值是否为有符号数设置为给定的boolean
    void
    setTableName(int columnIndex, String tableName)
    将指定列的值来自的表的名称设置为给定的表名称。
    <T> T
    unwrap(Class<T> iface)
    返回一个实现给定接口的对象,以允许访问非标准方法或代理未公开的标准方法。

    Methods declared in class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • RowSetMetaDataImpl

      public RowSetMetaDataImpl()
      构造一个RowSetMetaDataImpl对象。
  • Method Details

    • setColumnCount

      public void setColumnCount(int columnCount) throws SQLException
      将为此RowSetMetaDataImpl对象创建的RowSet对象中的列数设置为给定的数字。
      指定者:
      setColumnCount 在接口 RowSetMetaData
      参数:
      columnCount - 一个int,表示RowSet对象中的列数
      抛出:
      SQLException - 如果给定的数字等于或小于零
    • setAutoIncrement

      public void setAutoIncrement(int columnIndex, boolean property) throws SQLException
      将指定列是否自动编号(因此只读)设置为给定的boolean值。
      指定者:
      setAutoIncrement 在接口 RowSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须介于1和行集中的列数之间,包括边界值
      property - 如果给定列自动递增,则为true;否则为false
      抛出:
      SQLException - 如果发生数据库访问错误或给定的索引超出范围
    • setCaseSensitive

      public void setCaseSensitive(int columnIndex, boolean property) throws SQLException
      将指定列的名称是否区分大小写设置为给定的boolean
      指定者:
      setCaseSensitive 在接口 RowSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须介于1和行集中的列数之间,包括边界值
      property - true表示列名区分大小写;否则为false
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • setSearchable

      public void setSearchable(int columnIndex, boolean property) throws SQLException
      将存储在指定列中的值是否可用于WHERE子句设置为给定的boolean值。
      指定者:
      setSearchable 在接口 RowSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须介于1和行集中的列数之间,包括边界值
      property - true表示列值可用于WHERE子句;否则为false
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • setCurrency

      public void setCurrency(int columnIndex, boolean property) throws SQLException
      将存储在指定列中的值是否为现金值设置为给定的boolean
      指定者:
      setCurrency 在接口 RowSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在列数之间,包括1和列数之间
      property - 如果值是现金价值,则为true;否则为false。
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • setNullable

      public void setNullable(int columnIndex, int property) throws SQLException
      设置指定列中存储的值是否可以设置为接口ResultSetMetaData中的给定常量NULL
      指定者:
      setNullable 在接口 RowSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在列数之间,包括1和列数之间
      property - 下列ResultSetMetaData常量之一:columnNoNullscolumnNullablecolumnNullableUnknown
      抛出:
      SQLException - 如果发生数据库访问错误,给定的列号超出范围,或为property参数提供的值不是下列常量之一:ResultSetMetaData.columnNoNullsResultSetMetaData.columnNullableResultSetMetaData.columnNullableUnknown
    • setSigned

      public void setSigned(int columnIndex, boolean property) throws SQLException
      设置指定列中存储的值是否为带符号数字为给定的boolean
      指定者:
      setSigned 在接口 RowSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在列数之间,包括1和列数之间
      property - true表示列值为带符号数字;false表示不是
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • setColumnDisplaySize

      public void setColumnDisplaySize(int columnIndex, int size) throws SQLException
      设置指定列中存储的值的正常最大字符数为给定的数字。
      指定者:
      setColumnDisplaySize 在接口 RowSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在列数之间,包括1和列数之间
      size - 列中的最大字符数;必须为0或更多
      抛出:
      SQLException - 如果发生数据库访问错误,给定的列号超出范围,或size小于0
    • setColumnLabel

      public void setColumnLabel(int columnIndex, String label) throws SQLException
      设置用于打印和显示的建议列标签(如果有)为label。如果labelnull,则列标签设置为空字符串("")。
      指定者:
      setColumnLabel 在接口 RowSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在列数之间,包括1和列数之间
      label - 用于打印和显示的列标签;如果列标签为null,则设置为空的String
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列索引超出范围
    • setColumnName

      public void setColumnName(int columnIndex, String columnName) throws SQLException
      设置指定列的列名为给定的名称。
      指定者:
      setColumnName 在接口 RowSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在列数之间,包括1和列数之间
      columnName - 指示列名的String对象;如果给定名称为null,则设置为空的String
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列索引超出范围
    • setSchemaName

      public void setSchemaName(int columnIndex, String schemaName) throws SQLException
      设置指定列的表模式名称(如果有)为schemaName。如果schemaNamenull,则模式名称设置为空字符串("")。
      指定者:
      setSchemaName 在接口 RowSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在列数之间,包括1和列数之间
      schemaName - 指定列值来源表的模式名称;可以是空的Stringnull
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • setPrecision

      public void setPrecision(int columnIndex, int precision) throws SQLException
      设置存储在指定列中的值的十进制数字总位数为给定的数字。
      指定者:
      setPrecision 在接口 RowSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在列数之间,包括1和列数之间
      precision - 十进制数字的总位数;必须为0或更多
      抛出:
      SQLException - 如果发生数据库访问错误,columnIndex超出范围,或precision小于0
    • setScale

      public void setScale(int columnIndex, int scale) throws SQLException
      设置存储在指定列中的值的小数点右侧的数字位数为给定的数字。
      指定者:
      setScale 在接口 RowSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在列数之间,包括1和列数之间
      scale - 小数点右侧的数字位数;必须为零或更多
      抛出:
      SQLException - 如果发生数据库访问错误,columnIndex超出范围,或scale小于0
    • setTableName

      public void setTableName(int columnIndex, String tableName) throws SQLException
      设置指定列来源的表的名称为给定的表名。
      指定者:
      setTableName 在接口 RowSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在列数之间,包括1和列数之间
      tableName - 列的表名;可以是null或空字符串
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • setCatalogName

      public void setCatalogName(int columnIndex, String catalogName) throws SQLException
      设置指定列来源的表的目录名称为catalogName。如果catalogNamenull,则目录名称设置为空字符串。
      指定者:
      setCatalogName 在接口 RowSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在列数之间,包括1和列数之间
      catalogName - 列的表的目录名称;如果catalogName为null,则设置为空的String
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • setColumnType

      public void setColumnType(int columnIndex, int SQLType) throws SQLException
      将存储在指定列中的值的SQL类型代码设置为来自类java.sql.Types的给定类型代码。
      指定者:
      setColumnType 在接口 RowSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须介于1和列数之间,包括边界值
      SQLType - 指定列的SQL类型,必须是类java.sql.Types中的常量之一
      抛出:
      SQLException - 如果发生数据库访问错误,给定的列号超出范围,或指定的列类型不是java.sql.Types中的常量之一
      参见:
    • setColumnTypeName

      public void setColumnTypeName(int columnIndex, String typeName) throws SQLException
      将数据源用于存储在指定列中的值的类型名称设置为给定的类型名称。
      指定者:
      setColumnTypeName 在接口 RowSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须介于1和列数之间,包括边界值
      typeName - 数据源特定的类型名称;如果typeNamenull,则设置为空的String
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • getColumnCount

      public int getColumnCount() throws SQLException
      检索创建此RowSetMetaDataImpl对象的RowSet对象中的列数。
      指定者:
      getColumnCount 在接口 ResultSetMetaData
      返回:
      列数
      抛出:
      SQLException - 如果发生错误确定列数
    • isAutoIncrement

      public boolean isAutoIncrement(int columnIndex) throws SQLException
      检索存储在指定列中的值是否自动编号,因此为只读。
      指定者:
      isAutoIncrement 在接口 ResultSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须介于1和列数之间,包括边界值
      返回:
      如果列自动编号,则为true;否则为false
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • isCaseSensitive

      public boolean isCaseSensitive(int columnIndex) throws SQLException
      指示指定列名的大小写是否敏感。
      指定者:
      isCaseSensitive 在接口 ResultSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须介于1和列数之间,包括边界值
      返回:
      如果列名区分大小写,则为true;否则为false
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • isSearchable

      public boolean isSearchable(int columnIndex) throws SQLException
      指示存储在指定列中的值是否可以在WHERE子句中使用。
      指定者:
      isSearchable 在接口 ResultSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须介于1和列数之间,包括边界值
      返回:
      如果指定列中的值可以在WHERE子句中使用,则为true;否则为false
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • isCurrency

      public boolean isCurrency(int columnIndex) throws SQLException
      指示存储在指定列中的值是否为现金值。
      指定者:
      isCurrency 在接口 ResultSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须介于1和列数之间,包括边界值
      返回:
      如果指定列中的值为现金值,则为true;否则为false
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • isNullable

      public int isNullable(int columnIndex) throws SQLException
      检索指定列中是否可以存储NULL值的常量。
      指定者:
      isNullable 在接口 ResultSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须介于1和列数之间,包括边界值
      返回:
      来自ResultSetMetaData接口的常量;columnNoNullscolumnNullablecolumnNullableUnknown
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • isSigned

      public boolean isSigned(int columnIndex) throws SQLException
      指示存储在指定列中的值是否为有符号数。
      指定者:
      isSigned 在接口 ResultSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须介于1和列数之间,包括边界值
      返回:
      如果指定列中的值为有符号数,则为true;否则为false
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • getColumnDisplaySize

      public int getColumnDisplaySize(int columnIndex) throws SQLException
      检索指定列的正常最大字符宽度。
      指定者:
      getColumnDisplaySize 在接口 ResultSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须介于1和列数之间,包括边界值
      返回:
      可在指定列中显示的最大字符数
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • getColumnLabel

      public String getColumnLabel(int columnIndex) throws SQLException
      检索用于打印和显示的指定列的建议列标题。
      指定者:
      getColumnLabel 在接口 ResultSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须介于1和列数之间,包括边界值
      返回:
      用于打印和显示的建议列名称
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • getColumnName

      public String getColumnName(int columnIndex) throws SQLException
      检索指定列的名称。
      指定者:
      getColumnName 在接口 ResultSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在1和列数之间,包括边界值
      返回值:
      指定列的列名
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • getSchemaName

      public String getSchemaName(int columnIndex) throws SQLException
      从指定列派生的值的表的模式名称。
      指定者:
      getSchemaName 在接口 ResultSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在1和列数之间,包括边界值
      返回值:
      模式名称或如果没有模式名称可用则为空的String
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • getPrecision

      public int getPrecision(int columnIndex) throws SQLException
      检索存储在指定列中的值的数字总位数。
      指定者:
      getPrecision 在接口 ResultSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在1和列数之间,包括边界值
      返回值:
      指定列中存储的值的精度
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • getScale

      public int getScale(int columnIndex) throws SQLException
      检索存储在指定列中的值的小数点右侧的数字位数。
      指定者:
      getScale 在接口 ResultSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在1和列数之间,包括边界值
      返回值:
      指定列中存储的值的比例
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • getTableName

      public String getTableName(int columnIndex) throws SQLException
      检索存储在指定列中的值的表的名称。
      指定者:
      getTableName 在接口 ResultSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在1和列数之间,包括边界值
      返回值:
      表名或如果没有表名可用则为空的String
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • getCatalogName

      public String getCatalogName(int columnIndex) throws SQLException
      检索存储在指定列中的值的表的目录名称。
      指定者:
      getCatalogName 在接口 ResultSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在1和列数之间,包括边界值
      返回值:
      列的表的目录名称或如果没有目录名称可用则为空的String
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • getColumnType

      public int getColumnType(int columnIndex) throws SQLException
      检索存储在指定列中的值的SQL类型的类型代码(java.sql.Types常量之一)。
      指定者:
      getColumnType 在接口 ResultSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在1和列数之间,包括边界值
      返回值:
      代表指定列中存储的值的SQL类型的int
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
      参见:
    • getColumnTypeName

      public String getColumnTypeName(int columnIndex) throws SQLException
      检索存储在指定列中的值的特定于DBMS的类型名称。
      指定者:
      getColumnTypeName 在接口 ResultSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在1和列数之间,包括边界值
      返回值:
      数据源使用的类型名称
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • isReadOnly

      public boolean isReadOnly(int columnIndex) throws SQLException
      指示指定列绝对不可写,因此只读。
      指定者:
      isReadOnly 在接口 ResultSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在1和列数之间,包括边界值
      返回值:
      true如果此RowSet对象是只读的,因此不可更新;否则为false
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • isWritable

      public boolean isWritable(int columnIndex) throws SQLException
      指示指定列是否可能成功进行写操作。返回值为true表示写操作可能成功也可能不成功。
      指定者:
      isWritable 在接口 ResultSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在1和列数之间,包括边界值
      返回值:
      true如果对指定列的写操作可能成功;否则为false
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • isDefinitelyWritable

      public boolean isDefinitelyWritable(int columnIndex) throws SQLException
      指示指定列的写操作是否一定会成功。
      指定者:
      isDefinitelyWritable 在接口 ResultSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在1和列数之间,包括边界值
      返回值:
      true如果对指定列的写操作一定会成功;否则为false
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • getColumnClassName

      public String getColumnClassName(int columnIndex) throws SQLException
      检索指定列中的值将映射到的Java编程语言类的完全限定名称。例如,如果值是一个int,则此方法返回的类名将是java.lang.Integer

      如果指定列中的值具有自定义映射,则此方法返回实现SQLData的类的名称。当调用方法ResultSet.getObject从指定列中检索值时,它将创建此类或其子类的实例。

      指定者:
      getColumnClassName 在接口 ResultSetMetaData
      参数:
      columnIndex - 第一列为1,第二列为2,依此类推;必须在1和列数之间,包括边界值
      返回值:
      Java编程语言中方法RowSet.getObject用于检索指定列中的值时将使用的类的完全限定名称。这是在存在自定义映射时用于自定义映射的类名。
      抛出:
      SQLException - 如果发生数据库访问错误或给定的列号超出范围
    • unwrap

      public <T> T unwrap(Class<T> iface) throws SQLException
      返回一个实现给定接口的对象,以允许访问非标准方法或代理未公开的标准方法。结果可以是发现实现接口的对象或该对象的代理。如果接收者实现了接口,则该对象是接收者。如果接收者是包装器且被包装的对象实现了接口,则该对象是被包装的对象。否则,对象是在被包装的对象上递归调用unwrap的结果。如果接收者不是包装器且未实现接口,则会抛出SQLException
      指定者:
      unwrap 在接口 Wrapper
      类型参数:
      T - 由此Class对象建模的类的类型
      参数:
      iface - 定义结果必须实现的接口的Class
      返回值:
      实现接口的对象。可能是实际实现对象的代理。
      抛出:
      SQLException - 如果未找到实现接口的对象
      自:
      1.6
    • isWrapperFor

      public boolean isWrapperFor(Class<?> interfaces) throws SQLException
      如果此对象实现了接口参数或直接或间接地是包装器以包装实现了接口的对象,则返回true。否则返回false。如果此对象实现了接口,则返回true,否则如果此对象是包装器,则返回递归调用被包装对象的isWrapperFor的结果。如果此对象既不实现接口又不是包装器,则返回false。此方法应该作为与unwrap相比成本较低的操作实现,以便调用者可以使用此方法避免可能失败的昂贵unwrap调用。如果此方法返回true,则使用相同参数调用unwrap应该成功。
      指定者:
      isWrapperFor 在接口 Wrapper
      参数:
      interfaces - 定义一个接口的Class
      返回值:
      如果此对象实现了接口或直接或间接地包装了一个实现了接口的对象,则返回true。
      抛出:
      SQLException - 如果在确定此对象是否是具有给定接口的对象的包装器时发生错误
      自:
      1.6