Class JdbcDatabaseMetaDataCapability
- java.lang.Object
-
- net.sf.jsqlparser.util.validation.metadata.AbstractDatabaseMetaDataCapability
-
- net.sf.jsqlparser.util.validation.metadata.JdbcDatabaseMetaDataCapability
-
- All Implemented Interfaces:
DatabaseMetaDataValidation
,ValidationCapability
public class JdbcDatabaseMetaDataCapability extends AbstractDatabaseMetaDataCapability
Validates against schema by jdbc-metadata in a very basic way with simple caching and comparing names byString.equalsIgnoreCase(String)
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
COLUMN
private static java.util.logging.Logger
LOG
private static java.lang.String
TABLE
private static java.lang.String
VIEW
-
Fields inherited from class net.sf.jsqlparser.util.validation.metadata.AbstractDatabaseMetaDataCapability
cacheResults, connection, namesLookup, results
-
Fields inherited from interface net.sf.jsqlparser.util.validation.metadata.DatabaseMetaDataValidation
NAME
-
-
Constructor Summary
Constructors Constructor Description JdbcDatabaseMetaDataCapability(java.sql.Connection connection, java.util.function.UnaryOperator<java.lang.String> namesLookup)
JdbcDatabaseMetaDataCapability(java.sql.Connection connection, java.util.function.UnaryOperator<java.lang.String> namesLookup, boolean cacheResults)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
columnExists(java.util.Map<Named,java.lang.Boolean> results, Named named)
private DatabaseException
createDatabaseException(java.lang.String fqn, java.lang.String type, java.sql.SQLException e)
private boolean
existsFromItem(java.util.Map<Named,java.lang.Boolean> results, java.lang.String fqn)
protected boolean
jdbcMetadataTables(Named named, java.lang.String type)
private java.lang.String[]
splitAndValidateMinMax(java.lang.String type, java.lang.String fqn, int min, int max)
Split fqn by "." and validate expected path-elementsprotected boolean
tableExists(java.util.Map<Named,java.lang.Boolean> results, Named named)
protected boolean
viewExists(java.util.Map<Named,java.lang.Boolean> results, Named named)
-
Methods inherited from class net.sf.jsqlparser.util.validation.metadata.AbstractDatabaseMetaDataCapability
cache, clearCache, constraintExists, databaseExists, exists, getConnection, getNamesLookup, indexExists, isCacheResults, procedureExists, roleExists, schemaExists, unsupported, userExists
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.sf.jsqlparser.util.validation.metadata.DatabaseMetaDataValidation
getErrorMessage, getName, getUnexpectedErrorMessage, validate
-
Methods inherited from interface net.sf.jsqlparser.util.validation.ValidationCapability
toError, toError
-
-
-
-
Field Detail
-
VIEW
private static final java.lang.String VIEW
- See Also:
- Constant Field Values
-
TABLE
private static final java.lang.String TABLE
- See Also:
- Constant Field Values
-
COLUMN
private static final java.lang.String COLUMN
- See Also:
- Constant Field Values
-
LOG
private static final java.util.logging.Logger LOG
-
-
Constructor Detail
-
JdbcDatabaseMetaDataCapability
public JdbcDatabaseMetaDataCapability(java.sql.Connection connection, java.util.function.UnaryOperator<java.lang.String> namesLookup)
- Parameters:
connection
-namesLookup
- - seeNamesLookup
-
JdbcDatabaseMetaDataCapability
public JdbcDatabaseMetaDataCapability(java.sql.Connection connection, java.util.function.UnaryOperator<java.lang.String> namesLookup, boolean cacheResults)
- Parameters:
connection
-namesLookup
- - seeNamesLookup
cacheResults
- - whether the results should be cached for later lookups
-
-
Method Detail
-
columnExists
protected boolean columnExists(java.util.Map<Named,java.lang.Boolean> results, Named named) throws ValidationException
- Overrides:
columnExists
in classAbstractDatabaseMetaDataCapability
- Throws:
ValidationException
-
existsFromItem
private boolean existsFromItem(java.util.Map<Named,java.lang.Boolean> results, java.lang.String fqn)
-
viewExists
protected boolean viewExists(java.util.Map<Named,java.lang.Boolean> results, Named named) throws ValidationException
- Overrides:
viewExists
in classAbstractDatabaseMetaDataCapability
- Throws:
ValidationException
-
tableExists
protected boolean tableExists(java.util.Map<Named,java.lang.Boolean> results, Named named) throws ValidationException
- Overrides:
tableExists
in classAbstractDatabaseMetaDataCapability
- Throws:
ValidationException
-
jdbcMetadataTables
protected boolean jdbcMetadataTables(Named named, java.lang.String type) throws ValidationException
- Throws:
ValidationException
-
splitAndValidateMinMax
private java.lang.String[] splitAndValidateMinMax(java.lang.String type, java.lang.String fqn, int min, int max)
Split fqn by "." and validate expected path-elements- Parameters:
type
-fqn
-min
-max
-- Returns:
- the fqn-parts
-
createDatabaseException
private DatabaseException createDatabaseException(java.lang.String fqn, java.lang.String type, java.sql.SQLException e)
-
-