Package org.apache.metamodel.jdbc
Class JdbcDataContext
- java.lang.Object
-
- org.apache.metamodel.AbstractDataContext
-
- org.apache.metamodel.jdbc.JdbcDataContext
-
- All Implemented Interfaces:
org.apache.metamodel.DataContext,org.apache.metamodel.UpdateableDataContext
public class JdbcDataContext extends org.apache.metamodel.AbstractDataContext implements org.apache.metamodel.UpdateableDataContextDataContextStrategy to use for JDBC-compliant databases
-
-
Field Summary
Fields Modifier and Type Field Description static org.apache.metamodel.schema.ColumnTypeCOLUMN_TYPE_BLOB_AS_BYTESstatic org.apache.metamodel.schema.ColumnTypeCOLUMN_TYPE_CLOB_AS_STRINGstatic StringDATABASE_PRODUCT_DB2static StringDATABASE_PRODUCT_DB2_PREFIXstatic StringDATABASE_PRODUCT_H2static StringDATABASE_PRODUCT_HIVEstatic StringDATABASE_PRODUCT_HSQLDBstatic StringDATABASE_PRODUCT_IMPALAstatic StringDATABASE_PRODUCT_MYSQLstatic StringDATABASE_PRODUCT_ORACLEstatic StringDATABASE_PRODUCT_POSTGRESQLstatic StringDATABASE_PRODUCT_SQLITEstatic StringDATABASE_PRODUCT_SQLSERVERstatic StringSYSTEM_PROPERTY_BATCH_UPDATESstatic StringSYSTEM_PROPERTY_COMPILED_QUERY_POOL_MAX_SIZEstatic StringSYSTEM_PROPERTY_COMPILED_QUERY_POOL_MIN_EVICTABLE_IDLE_TIME_MILLISstatic StringSYSTEM_PROPERTY_COMPILED_QUERY_POOL_TIME_BETWEEN_EVICTION_RUNS_MILLISstatic StringSYSTEM_PROPERTY_CONVERT_LOBS
-
Constructor Summary
Constructors Constructor Description JdbcDataContext(Connection connection)Creates the strategy based on aConnectionJdbcDataContext(Connection connection, org.apache.metamodel.schema.TableType[] tableTypes, String catalogName)Creates the strategy based on aConnection, some table types and an optional catalogNameJdbcDataContext(DataSource dataSource)Creates the strategy based on aDataSourceJdbcDataContext(DataSource dataSource, org.apache.metamodel.schema.TableType[] tableTypes, String catalogName)Creates the strategy based on a data source, some table types and an optional catalogName
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidclose(Connection connection)Quietly closes the connectionvoidclose(Connection connection, ResultSet rs, Statement st)org.apache.metamodel.query.CompiledQuerycompileQuery(org.apache.metamodel.query.Query query)protected org.apache.metamodel.data.DataSetexecuteQuery(Connection connection, org.apache.metamodel.query.Query query, boolean closeConnectionOnCloseDataSet)org.apache.metamodel.data.DataSetexecuteQuery(org.apache.metamodel.query.CompiledQuery compiledQuery, Object... values)org.apache.metamodel.data.DataSetexecuteQuery(org.apache.metamodel.query.Query query)org.apache.metamodel.UpdateSummaryexecuteUpdate(org.apache.metamodel.UpdateScript update)StringgetCatalogName()String[]getCatalogNames()Convenience method to get the available catalogNames using this connection.ConnectiongetConnection()Gets an appropriate connection object to use - either a dedicated connection or a new connection from the datasource object.StringgetDatabaseProductName()StringgetDatabaseVersion()StringgetDefaultSchemaName()ObjectgetDelegate()Gets the delegate from the JDBC API (ie.org.apache.metamodel.jdbc.FetchSizeCalculatorgetFetchSizeCalculator()StringgetIdentifierQuoteString()IQueryRewritergetQueryRewriter()protected org.apache.metamodel.schema.SchemagetSchemaByNameInternal(String name)protected List<String>getSchemaNamesInternal()org.apache.metamodel.schema.TableType[]getTableTypes()protected booleanisDefaultAutoCommit()protected booleanisQualifiedPathDelim(char c)protected booleanisSingleConnection()JdbcDataContextsetQueryRewriter(IQueryRewriter queryRewriter)-
Methods inherited from class org.apache.metamodel.AbstractDataContext
executeQuery, getColumnByQualifiedLabel, getDefaultSchema, getSchemaByName, getSchemaNames, getSchemas, getTableByQualifiedLabel, onSchemaCacheRefreshed, parseQuery, query, refreshSchemas
-
-
-
-
Field Detail
-
SYSTEM_PROPERTY_BATCH_UPDATES
public static final String SYSTEM_PROPERTY_BATCH_UPDATES
- See Also:
- Constant Field Values
-
SYSTEM_PROPERTY_CONVERT_LOBS
public static final String SYSTEM_PROPERTY_CONVERT_LOBS
- See Also:
- Constant Field Values
-
SYSTEM_PROPERTY_COMPILED_QUERY_POOL_MAX_SIZE
public static final String SYSTEM_PROPERTY_COMPILED_QUERY_POOL_MAX_SIZE
- See Also:
- Constant Field Values
-
SYSTEM_PROPERTY_COMPILED_QUERY_POOL_MIN_EVICTABLE_IDLE_TIME_MILLIS
public static final String SYSTEM_PROPERTY_COMPILED_QUERY_POOL_MIN_EVICTABLE_IDLE_TIME_MILLIS
- See Also:
- Constant Field Values
-
SYSTEM_PROPERTY_COMPILED_QUERY_POOL_TIME_BETWEEN_EVICTION_RUNS_MILLIS
public static final String SYSTEM_PROPERTY_COMPILED_QUERY_POOL_TIME_BETWEEN_EVICTION_RUNS_MILLIS
- See Also:
- Constant Field Values
-
DATABASE_PRODUCT_POSTGRESQL
public static final String DATABASE_PRODUCT_POSTGRESQL
- See Also:
- Constant Field Values
-
DATABASE_PRODUCT_MYSQL
public static final String DATABASE_PRODUCT_MYSQL
- See Also:
- Constant Field Values
-
DATABASE_PRODUCT_HSQLDB
public static final String DATABASE_PRODUCT_HSQLDB
- See Also:
- Constant Field Values
-
DATABASE_PRODUCT_H2
public static final String DATABASE_PRODUCT_H2
- See Also:
- Constant Field Values
-
DATABASE_PRODUCT_SQLSERVER
public static final String DATABASE_PRODUCT_SQLSERVER
- See Also:
- Constant Field Values
-
DATABASE_PRODUCT_DB2
public static final String DATABASE_PRODUCT_DB2
- See Also:
- Constant Field Values
-
DATABASE_PRODUCT_DB2_PREFIX
public static final String DATABASE_PRODUCT_DB2_PREFIX
- See Also:
- Constant Field Values
-
DATABASE_PRODUCT_ORACLE
public static final String DATABASE_PRODUCT_ORACLE
- See Also:
- Constant Field Values
-
DATABASE_PRODUCT_HIVE
public static final String DATABASE_PRODUCT_HIVE
- See Also:
- Constant Field Values
-
DATABASE_PRODUCT_SQLITE
public static final String DATABASE_PRODUCT_SQLITE
- See Also:
- Constant Field Values
-
DATABASE_PRODUCT_IMPALA
public static final String DATABASE_PRODUCT_IMPALA
- See Also:
- Constant Field Values
-
COLUMN_TYPE_CLOB_AS_STRING
public static final org.apache.metamodel.schema.ColumnType COLUMN_TYPE_CLOB_AS_STRING
-
COLUMN_TYPE_BLOB_AS_BYTES
public static final org.apache.metamodel.schema.ColumnType COLUMN_TYPE_BLOB_AS_BYTES
-
-
Constructor Detail
-
JdbcDataContext
public JdbcDataContext(DataSource dataSource, org.apache.metamodel.schema.TableType[] tableTypes, String catalogName)
Creates the strategy based on a data source, some table types and an optional catalogName- Parameters:
dataSource- the datasource objcet to use for making connectionstableTypes- the types of tables to includecatalogName- a catalog name to use, can be null
-
JdbcDataContext
public JdbcDataContext(Connection connection, org.apache.metamodel.schema.TableType[] tableTypes, String catalogName)
Creates the strategy based on aConnection, some table types and an optional catalogName- Parameters:
connection- the database connectiontableTypes- the types of tables to includecatalogName- a catalog name to use, can be null
-
JdbcDataContext
public JdbcDataContext(Connection connection)
Creates the strategy based on aConnection- Parameters:
connection- the database connection
-
JdbcDataContext
public JdbcDataContext(DataSource dataSource)
Creates the strategy based on aDataSource- Parameters:
dataSource- the data source
-
-
Method Detail
-
compileQuery
public org.apache.metamodel.query.CompiledQuery compileQuery(org.apache.metamodel.query.Query query)
- Specified by:
compileQueryin interfaceorg.apache.metamodel.DataContext- Overrides:
compileQueryin classorg.apache.metamodel.AbstractDataContext
-
executeQuery
public org.apache.metamodel.data.DataSet executeQuery(org.apache.metamodel.query.CompiledQuery compiledQuery, Object... values)- Specified by:
executeQueryin interfaceorg.apache.metamodel.DataContext- Overrides:
executeQueryin classorg.apache.metamodel.AbstractDataContext
-
executeQuery
public org.apache.metamodel.data.DataSet executeQuery(org.apache.metamodel.query.Query query) throws org.apache.metamodel.MetaModelException- Specified by:
executeQueryin interfaceorg.apache.metamodel.DataContext- Throws:
org.apache.metamodel.MetaModelException
-
executeQuery
protected org.apache.metamodel.data.DataSet executeQuery(Connection connection, org.apache.metamodel.query.Query query, boolean closeConnectionOnCloseDataSet)
-
close
public void close(Connection connection)
Quietly closes the connection- Parameters:
connection- The connection to close (if it makes sense, @see closeIfNecessary)
-
close
@Deprecated public void close(Connection connection, ResultSet rs, Statement st)
-
getCatalogNames
public String[] getCatalogNames()
Convenience method to get the available catalogNames using this connection.- Returns:
- a String-array with the names of the available catalogs.
-
getDelegate
public Object getDelegate()
Gets the delegate from the JDBC API (ie. Connection or DataSource) that is being used to perform database interactions.- Returns:
- either a DataSource or a Connection, depending on the configuration of the DataContext.
-
getConnection
public Connection getConnection()
Gets an appropriate connection object to use - either a dedicated connection or a new connection from the datasource object. Hint: Use theclose(Connection)method to close the connection (and any ResultSet or Statements involved).
-
getDefaultSchemaName
public String getDefaultSchemaName()
- Specified by:
getDefaultSchemaNamein classorg.apache.metamodel.AbstractDataContext
-
setQueryRewriter
public JdbcDataContext setQueryRewriter(IQueryRewriter queryRewriter)
-
getQueryRewriter
public IQueryRewriter getQueryRewriter()
-
getIdentifierQuoteString
public String getIdentifierQuoteString()
-
getSchemaNamesInternal
protected List<String> getSchemaNamesInternal()
- Specified by:
getSchemaNamesInternalin classorg.apache.metamodel.AbstractDataContext
-
getSchemaByNameInternal
protected org.apache.metamodel.schema.Schema getSchemaByNameInternal(String name)
- Specified by:
getSchemaByNameInternalin classorg.apache.metamodel.AbstractDataContext
-
getFetchSizeCalculator
public org.apache.metamodel.jdbc.FetchSizeCalculator getFetchSizeCalculator()
-
executeUpdate
public org.apache.metamodel.UpdateSummary executeUpdate(org.apache.metamodel.UpdateScript update) throws RolledBackUpdateException- Specified by:
executeUpdatein interfaceorg.apache.metamodel.UpdateableDataContext- Throws:
RolledBackUpdateException- when a potentially retriableSQLExceptionwas thrown during the execution of the update script.
-
isSingleConnection
protected boolean isSingleConnection()
-
isDefaultAutoCommit
protected boolean isDefaultAutoCommit()
-
isQualifiedPathDelim
protected boolean isQualifiedPathDelim(char c)
- Overrides:
isQualifiedPathDelimin classorg.apache.metamodel.AbstractDataContext
-
getTableTypes
public org.apache.metamodel.schema.TableType[] getTableTypes()
-
getCatalogName
public String getCatalogName()
-
getDatabaseProductName
public String getDatabaseProductName()
-
getDatabaseVersion
public String getDatabaseVersion()
-
-