Class RowSetMetaDataImpl

  • All Implemented Interfaces:
    Serializable, ResultSetMetaData, Wrapper, RowSetMetaData

    public class RowSetMetaDataImpl
    extends Object
    implements RowSetMetaData, Serializable
    Provides implementations for the methods that set and get metadata information about a RowSet object's columns. A RowSetMetaDataImpl object keeps track of the number of columns in the rowset and maintains an internal array of column attributes for each column.

    A RowSet object creates a RowSetMetaDataImpl object internally in order to set and retrieve information about its columns.

    NOTE: All metadata in a RowSetMetaDataImpl object should be considered as unavailable until the RowSet object that it describes is populated. Therefore, any RowSetMetaDataImpl method that retrieves information is defined as having unspecified behavior when it is called before the RowSet object contains data.

    Since:
    1.5
    See Also:
    Serialized Form
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      String getCatalogName​(int columnIndex)
      Retrieves the catalog name of the table from which the value in the designated column was derived.
      String getColumnClassName​(int columnIndex)
      Retrieves the fully-qualified name of the class in the Java programming language to which a value in the designated column will be mapped.
      int getColumnCount()
      Retrieves the number of columns in the RowSet object for which this RowSetMetaDataImpl object was created.
      int getColumnDisplaySize​(int columnIndex)
      Retrieves the normal maximum width in chars of the designated column.
      String getColumnLabel​(int columnIndex)
      Retrieves the suggested column title for the designated column for use in printouts and displays.
      String getColumnName​(int columnIndex)
      Retrieves the name of the designated column.
      int getColumnType​(int columnIndex)
      Retrieves the type code (one of the java.sql.Types constants) for the SQL type of the value stored in the designated column.
      String getColumnTypeName​(int columnIndex)
      Retrieves the DBMS-specific type name for values stored in the designated column.
      int getPrecision​(int columnIndex)
      Retrieves the total number of digits for values stored in the designated column.
      int getScale​(int columnIndex)
      Retrieves the number of digits to the right of the decimal point for values stored in the designated column.
      String getSchemaName​(int columnIndex)
      Retrieves the schema name of the table from which the value in the designated column was derived.
      String getTableName​(int columnIndex)
      Retrieves the name of the table from which the value in the designated column was derived.
      boolean isAutoIncrement​(int columnIndex)
      Retrieves whether a value stored in the designated column is automatically numbered, and thus readonly.
      boolean isCaseSensitive​(int columnIndex)
      Indicates whether the case of the designated column's name matters.
      boolean isCurrency​(int columnIndex)
      Indicates whether a value stored in the designated column is a cash value.
      boolean isDefinitelyWritable​(int columnIndex)
      Indicates whether a write operation on the designated column will definitely succeed.
      int isNullable​(int columnIndex)
      Retrieves a constant indicating whether it is possible to store a NULL value in the designated column.
      boolean isReadOnly​(int columnIndex)
      Indicates whether the designated column is definitely not writable, thus readonly.
      boolean isSearchable​(int columnIndex)
      Indicates whether a value stored in the designated column can be used in a WHERE clause.
      boolean isSigned​(int columnIndex)
      Indicates whether a value stored in the designated column is a signed number.
      boolean isWrapperFor​(Class<?> interfaces)
      Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does.
      boolean isWritable​(int columnIndex)
      Indicates whether it is possible for a write operation on the designated column to succeed.
      void setAutoIncrement​(int columnIndex, boolean property)
      Sets whether the designated column is automatically numbered, thus read-only, to the given boolean value.
      void setCaseSensitive​(int columnIndex, boolean property)
      Sets whether the name of the designated column is case sensitive to the given boolean.
      void setCatalogName​(int columnIndex, String catalogName)
      Sets the catalog name of the table from which the designated column was derived to catalogName.
      void setColumnCount​(int columnCount)
      Sets to the given number the number of columns in the RowSet object for which this RowSetMetaDataImpl object was created.
      void setColumnDisplaySize​(int columnIndex, int size)
      Sets the normal maximum number of chars in the designated column to the given number.
      void setColumnLabel​(int columnIndex, String label)
      Sets the suggested column label for use in printouts and displays, if any, to label.
      void setColumnName​(int columnIndex, String columnName)
      Sets the column name of the designated column to the given name.
      void setColumnType​(int columnIndex, int SQLType)
      Sets the SQL type code for values stored in the designated column to the given type code from the class java.sql.Types.
      void setColumnTypeName​(int columnIndex, String typeName)
      Sets the type name used by the data source for values stored in the designated column to the given type name.
      void setCurrency​(int columnIndex, boolean property)
      Sets whether a value stored in the designated column is a cash value to the given boolean.
      void setNullable​(int columnIndex, int property)
      Sets whether a value stored in the designated column can be set to NULL to the given constant from the interface ResultSetMetaData.
      void setPrecision​(int columnIndex, int precision)
      Sets the total number of decimal digits in a value stored in the designated column to the given number.
      void setScale​(int columnIndex, int scale)
      Sets the number of digits to the right of the decimal point in a value stored in the designated column to the given number.
      void setSchemaName​(int columnIndex, String schemaName)
      Sets the designated column's table's schema name, if any, to schemaName.
      void setSearchable​(int columnIndex, boolean property)
      Sets whether a value stored in the designated column can be used in a WHERE clause to the given boolean value.
      void setSigned​(int columnIndex, boolean property)
      Sets whether a value stored in the designated column is a signed number to the given boolean.
      void setTableName​(int columnIndex, String tableName)
      Sets the name of the table from which the designated column was derived to the given table name.
      <T> T unwrap​(Class<T> iface)
      Returns an object that implements the given interface to allow access to non-standard methods, or standard methods not exposed by the proxy.
    • Constructor Detail

      • RowSetMetaDataImpl

        public RowSetMetaDataImpl()
    • Method Detail

      • setColumnCount

        public void setColumnCount​(int columnCount)
                            throws SQLException
        Sets to the given number the number of columns in the RowSet object for which this RowSetMetaDataImpl object was created.
        Specified by:
        setColumnCount in interface RowSetMetaData
        Parameters:
        columnCount - an int giving the number of columns in the RowSet object
        Throws:
        SQLException - if the given number is equal to or less than zero
      • setAutoIncrement

        public void setAutoIncrement​(int columnIndex,
                                     boolean property)
                              throws SQLException
        Sets whether the designated column is automatically numbered, thus read-only, to the given boolean value.
        Specified by:
        setAutoIncrement in interface RowSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns in the rowset, inclusive
        property - true if the given column is automatically incremented; false otherwise
        Throws:
        SQLException - if a database access error occurs or the given index is out of bounds
      • setCaseSensitive

        public void setCaseSensitive​(int columnIndex,
                                     boolean property)
                              throws SQLException
        Sets whether the name of the designated column is case sensitive to the given boolean.
        Specified by:
        setCaseSensitive in interface RowSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns in the rowset, inclusive
        property - true to indicate that the column name is case sensitive; false otherwise
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • setSearchable

        public void setSearchable​(int columnIndex,
                                  boolean property)
                           throws SQLException
        Sets whether a value stored in the designated column can be used in a WHERE clause to the given boolean value.
        Specified by:
        setSearchable in interface RowSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns in the rowset, inclusive
        property - true to indicate that a column value can be used in a WHERE clause; false otherwise
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • setCurrency

        public void setCurrency​(int columnIndex,
                                boolean property)
                         throws SQLException
        Sets whether a value stored in the designated column is a cash value to the given boolean.
        Specified by:
        setCurrency in interface RowSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive between 1 and the number of columns, inclusive
        property - true if the value is a cash value; false otherwise.
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • setNullable

        public void setNullable​(int columnIndex,
                                int property)
                         throws SQLException
        Sets whether a value stored in the designated column can be set to NULL to the given constant from the interface ResultSetMetaData.
        Specified by:
        setNullable in interface RowSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        property - one of the following ResultSetMetaData constants: columnNoNulls, columnNullable, or columnNullableUnknown
        Throws:
        SQLException - if a database access error occurs, the given column number is out of bounds, or the value supplied for the property parameter is not one of the following constants: ResultSetMetaData.columnNoNulls, ResultSetMetaData.columnNullable, or ResultSetMetaData.columnNullableUnknown
      • setSigned

        public void setSigned​(int columnIndex,
                              boolean property)
                       throws SQLException
        Sets whether a value stored in the designated column is a signed number to the given boolean.
        Specified by:
        setSigned in interface RowSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        property - true to indicate that a column value is a signed number; false to indicate that it is not
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • setColumnDisplaySize

        public void setColumnDisplaySize​(int columnIndex,
                                         int size)
                                  throws SQLException
        Sets the normal maximum number of chars in the designated column to the given number.
        Specified by:
        setColumnDisplaySize in interface RowSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        size - the maximum size of the column in chars; must be 0 or more
        Throws:
        SQLException - if a database access error occurs, the given column number is out of bounds, or size is less than 0
      • setColumnLabel

        public void setColumnLabel​(int columnIndex,
                                   String label)
                            throws SQLException
        Sets the suggested column label for use in printouts and displays, if any, to label. If label is null, the column label is set to an empty string ("").
        Specified by:
        setColumnLabel in interface RowSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        label - the column label to be used in printouts and displays; if the column label is null, an empty String is set
        Throws:
        SQLException - if a database access error occurs or the given column index is out of bounds
      • setColumnName

        public void setColumnName​(int columnIndex,
                                  String columnName)
                           throws SQLException
        Sets the column name of the designated column to the given name.
        Specified by:
        setColumnName in interface RowSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        columnName - a String object indicating the column name; if the given name is null, an empty String is set
        Throws:
        SQLException - if a database access error occurs or the given column index is out of bounds
      • setSchemaName

        public void setSchemaName​(int columnIndex,
                                  String schemaName)
                           throws SQLException
        Sets the designated column's table's schema name, if any, to schemaName. If schemaName is null, the schema name is set to an empty string ("").
        Specified by:
        setSchemaName in interface RowSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        schemaName - the schema name for the table from which a value in the designated column was derived; may be an empty String or null
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • setPrecision

        public void setPrecision​(int columnIndex,
                                 int precision)
                          throws SQLException
        Sets the total number of decimal digits in a value stored in the designated column to the given number.
        Specified by:
        setPrecision in interface RowSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        precision - the total number of decimal digits; must be 0 or more
        Throws:
        SQLException - if a database access error occurs, columnIndex is out of bounds, or precision is less than 0
      • setScale

        public void setScale​(int columnIndex,
                             int scale)
                      throws SQLException
        Sets the number of digits to the right of the decimal point in a value stored in the designated column to the given number.
        Specified by:
        setScale in interface RowSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        scale - the number of digits to the right of the decimal point; must be zero or greater
        Throws:
        SQLException - if a database access error occurs, columnIndex is out of bounds, or scale is less than 0
      • setTableName

        public void setTableName​(int columnIndex,
                                 String tableName)
                          throws SQLException
        Sets the name of the table from which the designated column was derived to the given table name.
        Specified by:
        setTableName in interface RowSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        tableName - the column's table name; may be null or an empty string
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • setCatalogName

        public void setCatalogName​(int columnIndex,
                                   String catalogName)
                            throws SQLException
        Sets the catalog name of the table from which the designated column was derived to catalogName. If catalogName is null, the catalog name is set to an empty string.
        Specified by:
        setCatalogName in interface RowSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        catalogName - the column's table's catalog name; if the catalogName is null, an empty String is set
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • setColumnType

        public void setColumnType​(int columnIndex,
                                  int SQLType)
                           throws SQLException
        Sets the SQL type code for values stored in the designated column to the given type code from the class java.sql.Types.
        Specified by:
        setColumnType in interface RowSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        SQLType - the designated column's SQL type, which must be one of the constants in the class java.sql.Types
        Throws:
        SQLException - if a database access error occurs, the given column number is out of bounds, or the column type specified is not one of the constants in java.sql.Types
        See Also:
        Types
      • setColumnTypeName

        public void setColumnTypeName​(int columnIndex,
                                      String typeName)
                               throws SQLException
        Sets the type name used by the data source for values stored in the designated column to the given type name.
        Specified by:
        setColumnTypeName in interface RowSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        typeName - the data source-specific type name; if typeName is null, an empty String is set
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • getColumnCount

        public int getColumnCount()
                           throws SQLException
        Retrieves the number of columns in the RowSet object for which this RowSetMetaDataImpl object was created.
        Specified by:
        getColumnCount in interface ResultSetMetaData
        Returns:
        the number of columns
        Throws:
        SQLException - if an error occurs determining the column count
      • isAutoIncrement

        public boolean isAutoIncrement​(int columnIndex)
                                throws SQLException
        Retrieves whether a value stored in the designated column is automatically numbered, and thus readonly.
        Specified by:
        isAutoIncrement in interface ResultSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        Returns:
        true if the column is automatically numbered; false otherwise
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • isCaseSensitive

        public boolean isCaseSensitive​(int columnIndex)
                                throws SQLException
        Indicates whether the case of the designated column's name matters.
        Specified by:
        isCaseSensitive in interface ResultSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        Returns:
        true if the column name is case sensitive; false otherwise
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • isSearchable

        public boolean isSearchable​(int columnIndex)
                             throws SQLException
        Indicates whether a value stored in the designated column can be used in a WHERE clause.
        Specified by:
        isSearchable in interface ResultSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        Returns:
        true if a value in the designated column can be used in a WHERE clause; false otherwise
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • isCurrency

        public boolean isCurrency​(int columnIndex)
                           throws SQLException
        Indicates whether a value stored in the designated column is a cash value.
        Specified by:
        isCurrency in interface ResultSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        Returns:
        true if a value in the designated column is a cash value; false otherwise
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • isNullable

        public int isNullable​(int columnIndex)
                       throws SQLException
        Retrieves a constant indicating whether it is possible to store a NULL value in the designated column.
        Specified by:
        isNullable in interface ResultSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        Returns:
        a constant from the ResultSetMetaData interface; either columnNoNulls, columnNullable, or columnNullableUnknown
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • isSigned

        public boolean isSigned​(int columnIndex)
                         throws SQLException
        Indicates whether a value stored in the designated column is a signed number.
        Specified by:
        isSigned in interface ResultSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        Returns:
        true if a value in the designated column is a signed number; false otherwise
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • getColumnDisplaySize

        public int getColumnDisplaySize​(int columnIndex)
                                 throws SQLException
        Retrieves the normal maximum width in chars of the designated column.
        Specified by:
        getColumnDisplaySize in interface ResultSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        Returns:
        the maximum number of chars that can be displayed in the designated column
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • getColumnLabel

        public String getColumnLabel​(int columnIndex)
                              throws SQLException
        Retrieves the suggested column title for the designated column for use in printouts and displays.
        Specified by:
        getColumnLabel in interface ResultSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        Returns:
        the suggested column name to use in printouts and displays
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • getColumnName

        public String getColumnName​(int columnIndex)
                             throws SQLException
        Retrieves the name of the designated column.
        Specified by:
        getColumnName in interface ResultSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        Returns:
        the column name of the designated column
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • getSchemaName

        public String getSchemaName​(int columnIndex)
                             throws SQLException
        Retrieves the schema name of the table from which the value in the designated column was derived.
        Specified by:
        getSchemaName in interface ResultSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        Returns:
        the schema name or an empty String if no schema name is available
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • getPrecision

        public int getPrecision​(int columnIndex)
                         throws SQLException
        Retrieves the total number of digits for values stored in the designated column.
        Specified by:
        getPrecision in interface ResultSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        Returns:
        the precision for values stored in the designated column
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • getScale

        public int getScale​(int columnIndex)
                     throws SQLException
        Retrieves the number of digits to the right of the decimal point for values stored in the designated column.
        Specified by:
        getScale in interface ResultSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        Returns:
        the scale for values stored in the designated column
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • getTableName

        public String getTableName​(int columnIndex)
                            throws SQLException
        Retrieves the name of the table from which the value in the designated column was derived.
        Specified by:
        getTableName in interface ResultSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        Returns:
        the table name or an empty String if no table name is available
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • getCatalogName

        public String getCatalogName​(int columnIndex)
                              throws SQLException
        Retrieves the catalog name of the table from which the value in the designated column was derived.
        Specified by:
        getCatalogName in interface ResultSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        Returns:
        the catalog name of the column's table or an empty String if no catalog name is available
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • getColumnType

        public int getColumnType​(int columnIndex)
                          throws SQLException
        Retrieves the type code (one of the java.sql.Types constants) for the SQL type of the value stored in the designated column.
        Specified by:
        getColumnType in interface ResultSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        Returns:
        an int representing the SQL type of values stored in the designated column
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
        See Also:
        Types
      • getColumnTypeName

        public String getColumnTypeName​(int columnIndex)
                                 throws SQLException
        Retrieves the DBMS-specific type name for values stored in the designated column.
        Specified by:
        getColumnTypeName in interface ResultSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        Returns:
        the type name used by the data source
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • isReadOnly

        public boolean isReadOnly​(int columnIndex)
                           throws SQLException
        Indicates whether the designated column is definitely not writable, thus readonly.
        Specified by:
        isReadOnly in interface ResultSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        Returns:
        true if this RowSet object is read-Only and thus not updatable; false otherwise
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • isWritable

        public boolean isWritable​(int columnIndex)
                           throws SQLException
        Indicates whether it is possible for a write operation on the designated column to succeed. A return value of true means that a write operation may or may not succeed.
        Specified by:
        isWritable in interface ResultSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        Returns:
        true if a write operation on the designated column may will succeed; false otherwise
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • isDefinitelyWritable

        public boolean isDefinitelyWritable​(int columnIndex)
                                     throws SQLException
        Indicates whether a write operation on the designated column will definitely succeed.
        Specified by:
        isDefinitelyWritable in interface ResultSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        Returns:
        true if a write operation on the designated column will definitely succeed; false otherwise
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • getColumnClassName

        public String getColumnClassName​(int columnIndex)
                                  throws SQLException
        Retrieves the fully-qualified name of the class in the Java programming language to which a value in the designated column will be mapped. For example, if the value is an int, the class name returned by this method will be java.lang.Integer.

        If the value in the designated column has a custom mapping, this method returns the name of the class that implements SQLData. When the method ResultSet.getObject is called to retrieve a value from the designated column, it will create an instance of this class or one of its subclasses.

        Specified by:
        getColumnClassName in interface ResultSetMetaData
        Parameters:
        columnIndex - the first column is 1, the second is 2, and so on; must be between 1 and the number of columns, inclusive
        Returns:
        the fully-qualified name of the class in the Java programming language that would be used by the method RowSet.getObject to retrieve the value in the specified column. This is the class name used for custom mapping when there is a custom mapping.
        Throws:
        SQLException - if a database access error occurs or the given column number is out of bounds
      • unwrap

        public <T> T unwrap​(Class<T> iface)
                     throws SQLException
        Returns an object that implements the given interface to allow access to non-standard methods, or standard methods not exposed by the proxy. The result may be either the object found to implement the interface or a proxy for that object. If the receiver implements the interface then that is the object. If the receiver is a wrapper and the wrapped object implements the interface then that is the object. Otherwise the object is the result of calling unwrap recursively on the wrapped object. If the receiver is not a wrapper and does not implement the interface, then an SQLException is thrown.
        Specified by:
        unwrap in interface Wrapper
        Type Parameters:
        T - the type of the class modeled by this Class object
        Parameters:
        iface - A Class defining an interface that the result must implement.
        Returns:
        an object that implements the interface. May be a proxy for the actual implementing object.
        Throws:
        SQLException - If no object found that implements the interface
        Since:
        1.6
      • isWrapperFor

        public boolean isWrapperFor​(Class<?> interfaces)
                             throws SQLException
        Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does. Returns false otherwise. If this implements the interface then return true, else if this is a wrapper then return the result of recursively calling isWrapperFor on the wrapped object. If this does not implement the interface and is not a wrapper, return false. This method should be implemented as a low-cost operation compared to unwrap so that callers can use this method to avoid expensive unwrap calls that may fail. If this method returns true then calling unwrap with the same argument should succeed.
        Specified by:
        isWrapperFor in interface Wrapper
        Parameters:
        interfaces - a Class defining an interface.
        Returns:
        true if this implements the interface or directly or indirectly wraps an object that does.
        Throws:
        SQLException - if an error occurs while determining whether this is a wrapper for an object with the given interface.
        Since:
        1.6