Package org.h2.jdbc
Class JdbcResultSetMetaData
- java.lang.Object
-
- org.h2.message.TraceObject
-
- org.h2.jdbc.JdbcResultSetMetaData
-
- All Implemented Interfaces:
java.sql.ResultSetMetaData
,java.sql.Wrapper
public final class JdbcResultSetMetaData extends TraceObject implements java.sql.ResultSetMetaData
Represents the meta data for a ResultSet.
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String
catalog
private int
columnCount
private JdbcPreparedStatement
prep
private ResultInterface
result
private JdbcResultSet
rs
-
Fields inherited from class org.h2.message.TraceObject
ARRAY, BLOB, CALLABLE_STATEMENT, CLOB, CONNECTION, DATA_SOURCE, DATABASE_META_DATA, PARAMETER_META_DATA, PREPARED_STATEMENT, RESULT_SET, RESULT_SET_META_DATA, SAVEPOINT, SQLXML, STATEMENT, trace, XA_DATA_SOURCE, XID
-
-
Constructor Summary
Constructors Constructor Description JdbcResultSetMetaData(JdbcResultSet rs, JdbcPreparedStatement prep, ResultInterface result, java.lang.String catalog, Trace trace, int id)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
checkClosed()
java.lang.String
getCatalogName(int column)
Returns the catalog name.private int
getColumn(java.lang.String methodName, int columnIndex)
Writes trace information and checks validity of this object and parameter.java.lang.String
getColumnClassName(int column)
Gets the Java class name of the object that will be returned if ResultSet.getObject is called.int
getColumnCount()
Returns the number of columns.int
getColumnDisplaySize(int column)
Gets the maximum display size for this column.java.lang.String
getColumnLabel(int column)
Returns the column label.java.lang.String
getColumnName(int column)
Returns the column name.int
getColumnType(int column)
Returns the data type of a column.java.lang.String
getColumnTypeName(int column)
Returns the data type name of a column.int
getPrecision(int column)
Gets the precision for this column.int
getScale(int column)
Gets the scale for this column.java.lang.String
getSchemaName(int column)
Returns the schema name.java.lang.String
getTableName(int column)
Returns the table name.boolean
isAutoIncrement(int column)
Checks if this an autoincrement column.boolean
isCaseSensitive(int column)
Checks if this column is case sensitive.boolean
isCurrency(int column)
Checks if this is a currency column.boolean
isDefinitelyWritable(int column)
Checks whether a write on this column will definitely succeed.int
isNullable(int column)
Checks if this is nullable column.boolean
isReadOnly(int column)
Checks if this column is read only.boolean
isSearchable(int column)
Checks if this column is searchable.boolean
isSigned(int column)
Checks if this column is signed.boolean
isWrapperFor(java.lang.Class<?> iface)
Checks if unwrap can return an object of this class.boolean
isWritable(int column)
Checks whether it is possible for a write on this column to succeed.java.lang.String
toString()
INTERNAL<T> T
unwrap(java.lang.Class<T> iface)
Return an object of this class if possible.-
Methods inherited from class org.h2.message.TraceObject
debugCode, debugCodeAssign, debugCodeCall, debugCodeCall, debugCodeCall, getNextId, getTraceId, getTraceObjectName, isDebugEnabled, isInfoEnabled, logAndConvert, quote, quoteArray, quoteBigDecimal, quoteBytes, quoteDate, quoteIntArray, quoteMap, quoteTime, quoteTimestamp, setTrace, unsupported
-
-
-
-
Field Detail
-
catalog
private final java.lang.String catalog
-
rs
private final JdbcResultSet rs
-
prep
private final JdbcPreparedStatement prep
-
result
private final ResultInterface result
-
columnCount
private final int columnCount
-
-
Constructor Detail
-
JdbcResultSetMetaData
JdbcResultSetMetaData(JdbcResultSet rs, JdbcPreparedStatement prep, ResultInterface result, java.lang.String catalog, Trace trace, int id)
-
-
Method Detail
-
getColumnCount
public int getColumnCount() throws java.sql.SQLException
Returns the number of columns.- Specified by:
getColumnCount
in interfacejava.sql.ResultSetMetaData
- Returns:
- the number of columns
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
getColumnLabel
public java.lang.String getColumnLabel(int column) throws java.sql.SQLException
Returns the column label.- Specified by:
getColumnLabel
in interfacejava.sql.ResultSetMetaData
- Parameters:
column
- the column index (1,2,...)- Returns:
- the column label
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
getColumnName
public java.lang.String getColumnName(int column) throws java.sql.SQLException
Returns the column name.- Specified by:
getColumnName
in interfacejava.sql.ResultSetMetaData
- Parameters:
column
- the column index (1,2,...)- Returns:
- the column name
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
getColumnType
public int getColumnType(int column) throws java.sql.SQLException
Returns the data type of a column. See also java.sql.Type.- Specified by:
getColumnType
in interfacejava.sql.ResultSetMetaData
- Parameters:
column
- the column index (1,2,...)- Returns:
- the data type
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
getColumnTypeName
public java.lang.String getColumnTypeName(int column) throws java.sql.SQLException
Returns the data type name of a column.- Specified by:
getColumnTypeName
in interfacejava.sql.ResultSetMetaData
- Parameters:
column
- the column index (1,2,...)- Returns:
- the data type name
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
getSchemaName
public java.lang.String getSchemaName(int column) throws java.sql.SQLException
Returns the schema name.- Specified by:
getSchemaName
in interfacejava.sql.ResultSetMetaData
- Parameters:
column
- the column index (1,2,...)- Returns:
- the schema name, or "" (an empty string) if not applicable
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
getTableName
public java.lang.String getTableName(int column) throws java.sql.SQLException
Returns the table name.- Specified by:
getTableName
in interfacejava.sql.ResultSetMetaData
- Parameters:
column
- the column index (1,2,...)- Returns:
- the table name
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
getCatalogName
public java.lang.String getCatalogName(int column) throws java.sql.SQLException
Returns the catalog name.- Specified by:
getCatalogName
in interfacejava.sql.ResultSetMetaData
- Parameters:
column
- the column index (1,2,...)- Returns:
- the catalog name
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
isAutoIncrement
public boolean isAutoIncrement(int column) throws java.sql.SQLException
Checks if this an autoincrement column.- Specified by:
isAutoIncrement
in interfacejava.sql.ResultSetMetaData
- Parameters:
column
- the column index (1,2,...)- Returns:
- false
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
isCaseSensitive
public boolean isCaseSensitive(int column) throws java.sql.SQLException
Checks if this column is case sensitive. It always returns true.- Specified by:
isCaseSensitive
in interfacejava.sql.ResultSetMetaData
- Parameters:
column
- the column index (1,2,...)- Returns:
- true
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
isSearchable
public boolean isSearchable(int column) throws java.sql.SQLException
Checks if this column is searchable. It always returns true.- Specified by:
isSearchable
in interfacejava.sql.ResultSetMetaData
- Parameters:
column
- the column index (1,2,...)- Returns:
- true
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
isCurrency
public boolean isCurrency(int column) throws java.sql.SQLException
Checks if this is a currency column. It always returns false.- Specified by:
isCurrency
in interfacejava.sql.ResultSetMetaData
- Parameters:
column
- the column index (1,2,...)- Returns:
- false
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
isNullable
public int isNullable(int column) throws java.sql.SQLException
Checks if this is nullable column. Returns ResultSetMetaData.columnNullableUnknown if this is not a column of a table. Otherwise, it returns ResultSetMetaData.columnNoNulls if the column is not nullable, and ResultSetMetaData.columnNullable if it is nullable.- Specified by:
isNullable
in interfacejava.sql.ResultSetMetaData
- Parameters:
column
- the column index (1,2,...)- Returns:
- ResultSetMetaData.column*
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
isSigned
public boolean isSigned(int column) throws java.sql.SQLException
Checks if this column is signed. Returns true for numeric columns.- Specified by:
isSigned
in interfacejava.sql.ResultSetMetaData
- Parameters:
column
- the column index (1,2,...)- Returns:
- true for numeric columns
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
isReadOnly
public boolean isReadOnly(int column) throws java.sql.SQLException
Checks if this column is read only. It always returns false.- Specified by:
isReadOnly
in interfacejava.sql.ResultSetMetaData
- Parameters:
column
- the column index (1,2,...)- Returns:
- false
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
isWritable
public boolean isWritable(int column) throws java.sql.SQLException
Checks whether it is possible for a write on this column to succeed. It always returns true.- Specified by:
isWritable
in interfacejava.sql.ResultSetMetaData
- Parameters:
column
- the column index (1,2,...)- Returns:
- true
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
isDefinitelyWritable
public boolean isDefinitelyWritable(int column) throws java.sql.SQLException
Checks whether a write on this column will definitely succeed. It always returns false.- Specified by:
isDefinitelyWritable
in interfacejava.sql.ResultSetMetaData
- Parameters:
column
- the column index (1,2,...)- Returns:
- false
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
getColumnClassName
public java.lang.String getColumnClassName(int column) throws java.sql.SQLException
Gets the Java class name of the object that will be returned if ResultSet.getObject is called.- Specified by:
getColumnClassName
in interfacejava.sql.ResultSetMetaData
- Parameters:
column
- the column index (1,2,...)- Returns:
- the Java class name
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
getPrecision
public int getPrecision(int column) throws java.sql.SQLException
Gets the precision for this column.- Specified by:
getPrecision
in interfacejava.sql.ResultSetMetaData
- Parameters:
column
- the column index (1,2,...)- Returns:
- the precision
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
getScale
public int getScale(int column) throws java.sql.SQLException
Gets the scale for this column.- Specified by:
getScale
in interfacejava.sql.ResultSetMetaData
- Parameters:
column
- the column index (1,2,...)- Returns:
- the scale
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
getColumnDisplaySize
public int getColumnDisplaySize(int column) throws java.sql.SQLException
Gets the maximum display size for this column.- Specified by:
getColumnDisplaySize
in interfacejava.sql.ResultSetMetaData
- Parameters:
column
- the column index (1,2,...)- Returns:
- the display size
- Throws:
java.sql.SQLException
- if the result set is closed or invalid
-
checkClosed
private void checkClosed()
-
getColumn
private int getColumn(java.lang.String methodName, int columnIndex)
Writes trace information and checks validity of this object and parameter.- Parameters:
methodName
- the called method namecolumnIndex
- 1-based column index- Returns:
- 0-based column index
-
unwrap
public <T> T unwrap(java.lang.Class<T> iface) throws java.sql.SQLException
Return an object of this class if possible.- Specified by:
unwrap
in interfacejava.sql.Wrapper
- Parameters:
iface
- the class- Returns:
- this
- Throws:
java.sql.SQLException
-
isWrapperFor
public boolean isWrapperFor(java.lang.Class<?> iface) throws java.sql.SQLException
Checks if unwrap can return an object of this class.- Specified by:
isWrapperFor
in interfacejava.sql.Wrapper
- Parameters:
iface
- the class- Returns:
- whether or not the interface is assignable from this class
- Throws:
java.sql.SQLException
-
toString
public java.lang.String toString()
INTERNAL- Overrides:
toString
in classjava.lang.Object
-
-