public class ResultSetTableMetaData extends AbstractTableMetaData
ResultSet based ITableMetaData implementation.
The lookup for the information needed to create the Column objects is retrieved
in two phases:
ResultSet via a DatabaseMetaData
object. Therefore the ResultSetMetaData is used to get the catalog/schema/table/column
names which in turn are used to get column information via
DatabaseMetaData.getColumns(String, String, String, String). The reason for this is
that the DatabaseMetaData is more precise and contains more information about columns
than the ResultSetMetaData does. Another reason is that some JDBC drivers (currently known
from MYSQL driver) provide an inconsistent implementation of those two MetaData objects
and the DatabaseMetaData is hence considered to be the master by dbunit.
ResultSetMetaData instance the second
step will create the dbunit Column using the ResultSetMetaData methods
directly (for example ResultSetMetaData.getColumnType(int). (This is also the way
dbunit worked until the 2.4 release)
| Constructor and Description |
|---|
ResultSetTableMetaData(String tableName,
ResultSet resultSet,
IDatabaseConnection connection,
boolean caseSensitiveMetaData) |
ResultSetTableMetaData(String tableName,
ResultSet resultSet,
IDataTypeFactory dataTypeFactory,
boolean caseSensitiveMetaData)
Deprecated.
|
| Modifier and Type | Method and Description |
|---|---|
Column[] |
getColumns()
Returns this table columns as recognized by dbunit.
|
Column[] |
getPrimaryKeys()
Returns this table primary key columns.
|
String |
getTableName()
Returns this table name.
|
String |
toString() |
getColumnIndex, getDataTypeFactory, getPrimaryKeys, getPrimaryKeyspublic ResultSetTableMetaData(String tableName, ResultSet resultSet, IDatabaseConnection connection, boolean caseSensitiveMetaData) throws DataSetException, SQLException
tableName - The name of the database tableresultSet - The JDBC result set that is used to retrieve the columnsconnection - The connection which is needed to retrieve some configuration valuescaseSensitiveMetaData - Whether or not the metadata is case sensitiveDataSetExceptionSQLExceptionpublic ResultSetTableMetaData(String tableName, ResultSet resultSet, IDataTypeFactory dataTypeFactory, boolean caseSensitiveMetaData) throws DataSetException, SQLException
ResultSetTableMetaData(String, ResultSet, IDatabaseConnection, boolean)tableName - The name of the database tableresultSet - The JDBC result set that is used to retrieve the columnsdataTypeFactory - caseSensitiveMetaData - Whether or not the metadata is case sensitiveDataSetExceptionSQLExceptionpublic Column[] getColumns() throws DataSetException
ITableMetaDataIDataTypeFactory.
Note that it is not an exceptional case within dbunit when a ITableMetaData
does not have a column.DataSetExceptionpublic Column[] getPrimaryKeys() throws DataSetException
ITableMetaDataDataSetExceptionpublic String getTableName()
ITableMetaDataCopyright © 2002-2017. All Rights Reserved.