Package com.databricks.jdbc.api.impl
Class DatabricksConnection
- java.lang.Object
-
- com.databricks.jdbc.api.impl.DatabricksConnection
-
- All Implemented Interfaces:
IDatabricksConnection,IDatabricksConnectionInternal,AutoCloseable,Connection,Wrapper
public class DatabricksConnection extends Object implements IDatabricksConnection, IDatabricksConnectionInternal
Implementation for Databricks specific connection.
-
-
Field Summary
-
Fields inherited from interface java.sql.Connection
TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE
-
-
Constructor Summary
Constructors Constructor Description DatabricksConnection(IDatabricksConnectionContext connectionContext)Creates an instance of Databricks connection for given connection context.DatabricksConnection(IDatabricksConnectionContext connectionContext, IDatabricksClient testDatabricksClient)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidabort(Executor executor)voidbeginRequest()voidclearWarnings()voidclose()voidcloseStatement(IDatabricksStatement statement)Closes a statement from the connection's active set.voidcommit()ArraycreateArrayOf(String typeName, Object[] elements)BlobcreateBlob()ClobcreateClob()NClobcreateNClob()SQLXMLcreateSQLXML()StatementcreateStatement()StatementcreateStatement(int resultSetType, int resultSetConcurrency)StatementcreateStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)StructcreateStruct(String typeName, Object[] attributes)voidendRequest()booleangetAutoCommit()StringgetCatalog()PropertiesgetClientInfo()Retrieves all client and session properties as a Properties object.StringgetClientInfo(String name)Retrieves the value of the specified client info property. case-insensitiveConnectiongetConnection()Returns the corresponding sql connection objectIDatabricksConnectionContextgetConnectionContext()Returns the connection context associated with the connection.StringgetConnectionId()Retrieves the unique identifier for this connection.intgetHoldability()DatabaseMetaDatagetMetaData()intgetNetworkTimeout()StringgetSchema()IDatabricksSessiongetSession()Returns the underlying session for the connection.StatementgetStatement(String statementId)Retrieves a statement handle for a given statement ID.intgetTransactionIsolation()Map<String,Class<?>>getTypeMap()SQLWarninggetWarnings()booleanisClosed()booleanisReadOnly()booleanisValid(int timeout)booleanisWrapperFor(Class<?> iface)StringnativeSQL(String sql)voidopen()Opens the connection and initiates the underlying sessionCallableStatementprepareCall(String sql)CallableStatementprepareCall(String sql, int resultSetType, int resultSetConcurrency)CallableStatementprepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)PreparedStatementprepareStatement(String sql)PreparedStatementprepareStatement(String sql, int autoGeneratedKeys)PreparedStatementprepareStatement(String sql, int[] columnIndexes)PreparedStatementprepareStatement(String sql, int resultSetType, int resultSetConcurrency)PreparedStatementprepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)PreparedStatementprepareStatement(String sql, String[] columnNames)voidreleaseSavepoint(Savepoint savepoint)voidrollback()voidrollback(Savepoint savepoint)voidsetAutoCommit(boolean autoCommit)voidsetCatalog(String catalog)voidsetClientInfo(String name, String value)Sets a client info property/session configvoidsetClientInfo(Properties properties)Sets multiple client info properties from the provided Properties object.voidsetHoldability(int holdability)voidsetNetworkTimeout(Executor executor, int milliseconds)voidsetReadOnly(boolean readOnly)SavepointsetSavepoint()SavepointsetSavepoint(String name)voidsetSchema(String schema)voidsetShardingKey(ShardingKey shardingKey)voidsetShardingKey(ShardingKey shardingKey, ShardingKey superShardingKey)booleansetShardingKeyIfValid(ShardingKey shardingKey, int timeout)booleansetShardingKeyIfValid(ShardingKey shardingKey, ShardingKey superShardingKey, int timeout)voidsetTransactionIsolation(int level)voidsetTypeMap(Map<String,Class<?>> map)<T> Tunwrap(Class<T> iface)
-
-
-
Constructor Detail
-
DatabricksConnection
public DatabricksConnection(IDatabricksConnectionContext connectionContext) throws DatabricksSQLException
Creates an instance of Databricks connection for given connection context.- Parameters:
connectionContext- underlying connection context- Throws:
DatabricksSQLException
-
DatabricksConnection
public DatabricksConnection(IDatabricksConnectionContext connectionContext, IDatabricksClient testDatabricksClient) throws DatabricksSQLException
- Throws:
DatabricksSQLException
-
-
Method Detail
-
open
public void open() throws DatabricksSQLExceptionDescription copied from interface:IDatabricksConnectionInternalOpens the connection and initiates the underlying session- Specified by:
openin interfaceIDatabricksConnectionInternal- Throws:
DatabricksSQLException
-
getStatement
public Statement getStatement(String statementId) throws SQLException
Description copied from interface:IDatabricksConnectionRetrieves a statement handle for a given statement ID.- Specified by:
getStatementin interfaceIDatabricksConnection- Parameters:
statementId- The unique identifier of the statement to retrieve- Returns:
- A
Statementobject representing the statement - Throws:
SQLException- if a database access error occurs or this method is called on a closed connection
-
getConnectionId
public String getConnectionId() throws SQLException
Description copied from interface:IDatabricksConnectionRetrieves the unique identifier for this connection.- Specified by:
getConnectionIdin interfaceIDatabricksConnection- Returns:
- A string representing the unique connection ID
- Throws:
SQLException- if a database access error occurs or this method is called on a closed connection
-
getSession
public IDatabricksSession getSession()
Description copied from interface:IDatabricksConnectionInternalReturns the underlying session for the connection.- Specified by:
getSessionin interfaceIDatabricksConnectionInternal
-
createStatement
public Statement createStatement()
- Specified by:
createStatementin interfaceConnection
-
prepareStatement
public PreparedStatement prepareStatement(String sql)
- Specified by:
prepareStatementin interfaceConnection
-
prepareCall
public CallableStatement prepareCall(String sql) throws SQLException
- Specified by:
prepareCallin interfaceConnection- Throws:
SQLException
-
nativeSQL
public String nativeSQL(String sql) throws SQLException
- Specified by:
nativeSQLin interfaceConnection- Throws:
SQLException
-
setAutoCommit
public void setAutoCommit(boolean autoCommit) throws SQLException- Specified by:
setAutoCommitin interfaceConnection- Throws:
SQLException
-
getAutoCommit
public boolean getAutoCommit() throws SQLException- Specified by:
getAutoCommitin interfaceConnection- Throws:
SQLException
-
commit
public void commit() throws SQLException- Specified by:
commitin interfaceConnection- Throws:
SQLException
-
rollback
public void rollback() throws SQLException- Specified by:
rollbackin interfaceConnection- Throws:
SQLException
-
close
public void close() throws DatabricksSQLException- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceConnection- Throws:
DatabricksSQLException
-
isClosed
public boolean isClosed() throws SQLException- Specified by:
isClosedin interfaceConnection- Throws:
SQLException
-
getMetaData
public DatabaseMetaData getMetaData() throws SQLException
- Specified by:
getMetaDatain interfaceConnection- Throws:
SQLException
-
setReadOnly
public void setReadOnly(boolean readOnly) throws SQLException- Specified by:
setReadOnlyin interfaceConnection- Throws:
SQLException
-
isReadOnly
public boolean isReadOnly() throws SQLException- Specified by:
isReadOnlyin interfaceConnection- Throws:
SQLException
-
setCatalog
public void setCatalog(String catalog) throws SQLException
- Specified by:
setCatalogin interfaceConnection- Throws:
SQLException
-
getCatalog
public String getCatalog() throws SQLException
- Specified by:
getCatalogin interfaceConnection- Throws:
SQLException
-
setTransactionIsolation
public void setTransactionIsolation(int level) throws SQLException- Specified by:
setTransactionIsolationin interfaceConnection- Throws:
SQLException
-
getTransactionIsolation
public int getTransactionIsolation() throws SQLException- Specified by:
getTransactionIsolationin interfaceConnection- Throws:
SQLException
-
getWarnings
public SQLWarning getWarnings() throws SQLException
- Specified by:
getWarningsin interfaceConnection- Throws:
SQLException
-
clearWarnings
public void clearWarnings() throws SQLException- Specified by:
clearWarningsin interfaceConnection- Throws:
SQLException
-
createStatement
public Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException
- Specified by:
createStatementin interfaceConnection- Throws:
SQLException
-
prepareStatement
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException
- Specified by:
prepareStatementin interfaceConnection- Throws:
SQLException
-
prepareCall
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException
- Specified by:
prepareCallin interfaceConnection- Throws:
SQLException
-
getTypeMap
public Map<String,Class<?>> getTypeMap()
- Specified by:
getTypeMapin interfaceConnection
-
setTypeMap
public void setTypeMap(Map<String,Class<?>> map) throws SQLException
- Specified by:
setTypeMapin interfaceConnection- Throws:
SQLException
-
setHoldability
public void setHoldability(int holdability) throws SQLException- Specified by:
setHoldabilityin interfaceConnection- Throws:
SQLException
-
getHoldability
public int getHoldability() throws SQLException- Specified by:
getHoldabilityin interfaceConnection- Throws:
SQLException
-
setSavepoint
public Savepoint setSavepoint() throws SQLException
- Specified by:
setSavepointin interfaceConnection- Throws:
SQLException
-
setSavepoint
public Savepoint setSavepoint(String name) throws SQLException
- Specified by:
setSavepointin interfaceConnection- Throws:
SQLException
-
rollback
public void rollback(Savepoint savepoint) throws SQLException
- Specified by:
rollbackin interfaceConnection- Throws:
SQLException
-
releaseSavepoint
public void releaseSavepoint(Savepoint savepoint) throws SQLException
- Specified by:
releaseSavepointin interfaceConnection- Throws:
SQLException
-
createStatement
public Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
- Specified by:
createStatementin interfaceConnection- Throws:
SQLException
-
prepareStatement
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
- Specified by:
prepareStatementin interfaceConnection- Throws:
SQLException
-
prepareCall
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
- Specified by:
prepareCallin interfaceConnection- Throws:
SQLException
-
prepareStatement
public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException
- Specified by:
prepareStatementin interfaceConnection- Throws:
SQLException
-
prepareStatement
public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException
- Specified by:
prepareStatementin interfaceConnection- Throws:
SQLException
-
prepareStatement
public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException
- Specified by:
prepareStatementin interfaceConnection- Throws:
SQLException
-
createClob
public Clob createClob() throws SQLException
- Specified by:
createClobin interfaceConnection- Throws:
SQLException
-
createBlob
public Blob createBlob() throws SQLException
- Specified by:
createBlobin interfaceConnection- Throws:
SQLException
-
createNClob
public NClob createNClob() throws SQLException
- Specified by:
createNClobin interfaceConnection- Throws:
SQLException
-
createSQLXML
public SQLXML createSQLXML() throws SQLException
- Specified by:
createSQLXMLin interfaceConnection- Throws:
SQLException
-
isValid
public boolean isValid(int timeout) throws SQLException- Specified by:
isValidin interfaceConnection- Throws:
SQLException
-
setClientInfo
public void setClientInfo(String name, String value) throws SQLClientInfoException
Sets a client info property/session config- Specified by:
setClientInfoin interfaceConnection- Parameters:
name- The name of the property to setvalue- The value to set- Throws:
SQLClientInfoException- If the property cannot be set due to validation errors or if the property name is not recognized
-
setClientInfo
public void setClientInfo(Properties properties) throws SQLClientInfoException
Sets multiple client info properties from the provided Properties object.- Specified by:
setClientInfoin interfaceConnection- Parameters:
properties- The properties containing client info to set- Throws:
SQLClientInfoException- If any property cannot be set
-
getClientInfo
public String getClientInfo(String name) throws SQLException
Retrieves the value of the specified client info property. case-insensitive- Specified by:
getClientInfoin interfaceConnection- Parameters:
name- The name of the client info property to retrieve- Returns:
- The value of the specified client info property, or null if not found
- Throws:
SQLException- If a database access error occurs
-
getClientInfo
public Properties getClientInfo() throws SQLException
Retrieves all client and session properties as a Properties object. Keys are in lower case.The returned Properties object contains default session configurations, user-defined session configurations, and client info properties.
- Specified by:
getClientInfoin interfaceConnection- Returns:
- A Properties object containing all client info properties
- Throws:
SQLException- If a database access error occurs
-
createArrayOf
public Array createArrayOf(String typeName, Object[] elements) throws SQLException
- Specified by:
createArrayOfin interfaceConnection- Throws:
SQLException
-
createStruct
public Struct createStruct(String typeName, Object[] attributes) throws SQLException
- Specified by:
createStructin interfaceConnection- Throws:
SQLException
-
setSchema
public void setSchema(String schema) throws SQLException
- Specified by:
setSchemain interfaceConnection- Throws:
SQLException
-
getSchema
public String getSchema() throws SQLException
- Specified by:
getSchemain interfaceConnection- Throws:
SQLException
-
abort
public void abort(Executor executor) throws SQLException
- Specified by:
abortin interfaceConnection- Throws:
SQLException
-
setNetworkTimeout
public void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException
- Specified by:
setNetworkTimeoutin interfaceConnection- Throws:
SQLException
-
getNetworkTimeout
public int getNetworkTimeout() throws SQLException- Specified by:
getNetworkTimeoutin interfaceConnection- Throws:
SQLException
-
unwrap
public <T> T unwrap(Class<T> iface) throws SQLException
- Specified by:
unwrapin interfaceWrapper- Throws:
SQLException
-
isWrapperFor
public boolean isWrapperFor(Class<?> iface) throws SQLException
- Specified by:
isWrapperForin interfaceWrapper- Throws:
SQLException
-
closeStatement
public void closeStatement(IDatabricksStatement statement)
Description copied from interface:IDatabricksConnectionInternalCloses a statement from the connection's active set.- Specified by:
closeStatementin interfaceIDatabricksConnectionInternal- Parameters:
statement-IDatabricksStatementto be closed
-
beginRequest
public void beginRequest()
- Specified by:
beginRequestin interfaceConnection
-
endRequest
public void endRequest()
- Specified by:
endRequestin interfaceConnection
-
setShardingKeyIfValid
public boolean setShardingKeyIfValid(ShardingKey shardingKey, ShardingKey superShardingKey, int timeout) throws DatabricksSQLFeatureNotImplementedException
- Specified by:
setShardingKeyIfValidin interfaceConnection- Throws:
DatabricksSQLFeatureNotImplementedException
-
setShardingKeyIfValid
public boolean setShardingKeyIfValid(ShardingKey shardingKey, int timeout) throws DatabricksSQLFeatureNotImplementedException
- Specified by:
setShardingKeyIfValidin interfaceConnection- Throws:
DatabricksSQLFeatureNotImplementedException
-
setShardingKey
public void setShardingKey(ShardingKey shardingKey, ShardingKey superShardingKey) throws DatabricksSQLFeatureNotImplementedException
- Specified by:
setShardingKeyin interfaceConnection- Throws:
DatabricksSQLFeatureNotImplementedException
-
setShardingKey
public void setShardingKey(ShardingKey shardingKey) throws DatabricksSQLFeatureNotImplementedException
- Specified by:
setShardingKeyin interfaceConnection- Throws:
DatabricksSQLFeatureNotImplementedException
-
getConnection
public Connection getConnection()
Description copied from interface:IDatabricksConnectionInternalReturns the corresponding sql connection object- Specified by:
getConnectionin interfaceIDatabricksConnectionInternal
-
getConnectionContext
public IDatabricksConnectionContext getConnectionContext()
Description copied from interface:IDatabricksConnectionInternalReturns the connection context associated with the connection.- Specified by:
getConnectionContextin interfaceIDatabricksConnectionInternal
-
-