3. Adapter Limitations
JDBC adapters based on dbvisitor-driver have the following usage limits regarding JDBC interface support:
- DatabaseMetaData provides partial metadata and capability information, not a complete relational schema discovery API. ORM, BI and migration tools that model databases from metadata need a separate compatibility assessment.
- When using resultSetType, resultSetConcurrency, resultSetHoldability, and fetchDirection parameters, only the following default values are supported:
- resultSetType = TYPE_FORWARD_ONLY
- resultSetConcurrency = CONCUR_READ_ONLY
- resultSetHoldability = HOLD_CURSORS_OVER_COMMIT
- fetchDirection = FETCH_FORWARD
- When using ResultSet:
- The ResultSet.update/insert/deleteXXX series of methods are not supported.
- When using Statement and PreparedStatement interfaces, overloaded methods with the following parameters are not supported:
- xxx(String sql, int[] columnIndexes) methods
String[] columnNamesselects generated-key columns actually returned by the adapter, not arbitrary fields. Requesting an unavailable column fails when reading generated keys; the write may already have completed.- Unsupported JDBC data types:
- SQLXML, REF_CURSOR, RowId, Ref, Struct, DISTINCT
- JDBC addBatch, clearBatch and executeBatch are not supported. Multiple statements and multi-row writes in a single command are not JDBC Batch.
- Savepoint operations are not supported
- Array, Blob, Clob, and NClob type data is pre-read into memory; please be aware of data size
Metadata Interface Conventions
The objects available for querying depend on the driver; see each driver's introduction. Empty results retain the standard JDBC column layout.
catalog matches an exact name. Name patterns use % for any string, _ for one character and \ for escaping. A null filter imposes no restriction; an empty string selects objects without that catalog or schema namespace. Unknown details such as field precision are not guessed. Permission and connection errors are reported as exceptions, not empty results.