public abstract class AvaticaConnection extends Object implements Connection
Abstract to allow newer versions of JDBC to add methods.
Modifier and Type | Class and Description |
---|---|
static interface |
AvaticaConnection.CallableWithoutException<T>
A Callable-like interface but without a "throws Exception".
|
static class |
AvaticaConnection.Trojan
A way to call package-protected methods.
|
Modifier and Type | Field and Description |
---|---|
protected UnregisteredDriver |
driver |
protected AvaticaFactory |
factory |
Meta.ConnectionHandle |
handle |
static Helper |
HELPER |
String |
id |
protected Properties |
info |
protected long |
maxRetriesPerExecute |
protected Meta |
meta |
protected AvaticaSpecificDatabaseMetaData |
metaData |
static String |
NUM_EXECUTE_RETRIES_DEFAULT |
static String |
NUM_EXECUTE_RETRIES_KEY |
static String |
PLAN_COLUMN_NAME
The name of the sole column returned by an EXPLAIN statement.
|
Map<InternalProperty,Object> |
properties |
static String |
ROWCOUNT_COLUMN_NAME
The name of the sole column returned by DML statements, containing
the number of rows modified.
|
protected int |
statementCount |
Map<Integer,AvaticaStatement> |
statementMap |
protected boolean |
transparentReconnectEnabled |
TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE
Modifier | Constructor and Description |
---|---|
protected |
AvaticaConnection(UnregisteredDriver driver,
AvaticaFactory factory,
String url,
Properties info)
Creates an AvaticaConnection.
|
Modifier and Type | Method and Description |
---|---|
void |
abort(Executor executor) |
protected void |
checkOpen() |
void |
clearWarnings() |
void |
close() |
void |
commit() |
ConnectionConfig |
config()
Returns a view onto this connection's configuration properties.
|
Array |
createArrayOf(String typeName,
Object[] elements) |
Blob |
createBlob() |
Clob |
createClob() |
NClob |
createNClob() |
protected ResultSet |
createResultSet(Meta.MetaResultSet metaResultSet,
QueryState state) |
SQLXML |
createSQLXML() |
AvaticaStatement |
createStatement() |
Statement |
createStatement(int resultSetType,
int resultSetConcurrency) |
AvaticaStatement |
createStatement(int resultSetType,
int resultSetConcurrency,
int resultSetHoldability) |
Struct |
createStruct(String typeName,
Object[] attributes) |
protected static AvaticaConnection.Trojan |
createTrojan() |
protected long[] |
executeBatchUpdateInternal(AvaticaPreparedStatement pstmt)
Executes a batch update using an
AvaticaPreparedStatement . |
protected ResultSet |
executeQueryInternal(AvaticaStatement statement,
Meta.Signature signature,
Meta.Frame firstFrame,
QueryState state,
boolean isUpdate)
Executes a prepared query, closing any previously open result set.
|
boolean |
getAutoCommit() |
AtomicBoolean |
getCancelFlag(Meta.StatementHandle h)
Returns or creates a slot whose state can be changed to cancel a
statement.
|
String |
getCatalog() |
Properties |
getClientInfo() |
String |
getClientInfo(String name) |
int |
getHoldability() |
KerberosConnection |
getKerberosConnection() |
DatabaseMetaData |
getMetaData() |
int |
getNetworkTimeout() |
String |
getSchema() |
Service |
getService() |
TimeZone |
getTimeZone()
Returns the time zone of this connection.
|
int |
getTransactionIsolation() |
Map<String,Class<?>> |
getTypeMap() |
SQLWarning |
getWarnings() |
<T> T |
invokeWithRetries(AvaticaConnection.CallableWithoutException<T> callable)
Invokes the given "callable", retrying the call when the server responds with an error
denoting that the connection is missing on the server.
|
boolean |
isClosed() |
boolean |
isReadOnly() |
boolean |
isValid(int timeout) |
boolean |
isWrapperFor(Class<?> iface) |
protected AvaticaStatement |
lookupStatement(Meta.StatementHandle h)
Creates a statement wrapper around an existing handle.
|
String |
nativeSQL(String sql) |
void |
openConnection()
Opens the connection on the server.
|
protected Meta.ExecuteResult |
prepareAndExecuteInternal(AvaticaStatement statement,
String sql,
long maxRowCount) |
protected Meta.ExecuteBatchResult |
prepareAndUpdateBatch(AvaticaStatement statement,
List<String> queries) |
CallableStatement |
prepareCall(String sql) |
CallableStatement |
prepareCall(String sql,
int resultSetType,
int resultSetConcurrency) |
CallableStatement |
prepareCall(String sql,
int resultSetType,
int resultSetConcurrency,
int resultSetHoldability) |
PreparedStatement |
prepareStatement(String sql) |
PreparedStatement |
prepareStatement(String sql,
int autoGeneratedKeys) |
PreparedStatement |
prepareStatement(String sql,
int[] columnIndexes) |
PreparedStatement |
prepareStatement(String sql,
int resultSetType,
int resultSetConcurrency) |
PreparedStatement |
prepareStatement(String sql,
int resultSetType,
int resultSetConcurrency,
int resultSetHoldability) |
PreparedStatement |
prepareStatement(String sql,
String[] columnNames) |
void |
releaseSavepoint(Savepoint savepoint) |
void |
rollback() |
void |
rollback(Savepoint savepoint) |
void |
setAutoCommit(boolean autoCommit) |
void |
setCatalog(String catalog) |
void |
setClientInfo(Properties properties) |
void |
setClientInfo(String name,
String value) |
void |
setHoldability(int holdability) |
void |
setKerberosConnection(KerberosConnection kerberosConnection) |
void |
setNetworkTimeout(Executor executor,
int milliseconds) |
void |
setReadOnly(boolean readOnly) |
Savepoint |
setSavepoint() |
Savepoint |
setSavepoint(String name) |
void |
setSchema(String schema) |
void |
setService(Service service) |
void |
setTransactionIsolation(int level) |
void |
setTypeMap(Map<String,Class<?>> map) |
<T> T |
unwrap(Class<T> iface) |
public static final String ROWCOUNT_COLUMN_NAME
public static final String NUM_EXECUTE_RETRIES_KEY
public static final String NUM_EXECUTE_RETRIES_DEFAULT
public static final String PLAN_COLUMN_NAME
Actually Avatica does not care what this column is called, but here is a useful place to define a suggested value.
public static final Helper HELPER
protected int statementCount
public final String id
public final Meta.ConnectionHandle handle
protected final UnregisteredDriver driver
protected final AvaticaFactory factory
protected final Properties info
protected final Meta meta
protected final AvaticaSpecificDatabaseMetaData metaData
public final Map<InternalProperty,Object> properties
public final Map<Integer,AvaticaStatement> statementMap
protected final long maxRetriesPerExecute
protected final boolean transparentReconnectEnabled
protected AvaticaConnection(UnregisteredDriver driver, AvaticaFactory factory, String url, Properties info)
Not public; method is called only from the driver or a derived class.
driver
- Driverfactory
- Factory for JDBC objectsurl
- Server URLinfo
- Other connection propertiespublic ConnectionConfig config()
Properties.getProperty(String)
. Derived projects will
almost certainly subclass ConnectionConfig
with their own
properties.public void openConnection()
protected void checkOpen() throws SQLException
SQLException
public AvaticaStatement createStatement() throws SQLException
createStatement
in interface Connection
SQLException
public PreparedStatement prepareStatement(String sql) throws SQLException
prepareStatement
in interface Connection
SQLException
public CallableStatement prepareCall(String sql) throws SQLException
prepareCall
in interface Connection
SQLException
public String nativeSQL(String sql) throws SQLException
nativeSQL
in interface Connection
SQLException
public void setAutoCommit(boolean autoCommit) throws SQLException
setAutoCommit
in interface Connection
SQLException
public boolean getAutoCommit() throws SQLException
getAutoCommit
in interface Connection
SQLException
public void commit() throws SQLException
commit
in interface Connection
SQLException
public void rollback() throws SQLException
rollback
in interface Connection
SQLException
public void close() throws SQLException
close
in interface AutoCloseable
close
in interface Connection
SQLException
public boolean isClosed() throws SQLException
isClosed
in interface Connection
SQLException
public DatabaseMetaData getMetaData() throws SQLException
getMetaData
in interface Connection
SQLException
public void setReadOnly(boolean readOnly) throws SQLException
setReadOnly
in interface Connection
SQLException
public boolean isReadOnly() throws SQLException
isReadOnly
in interface Connection
SQLException
public void setCatalog(String catalog) throws SQLException
setCatalog
in interface Connection
SQLException
public String getCatalog() throws SQLException
getCatalog
in interface Connection
SQLException
public void setTransactionIsolation(int level) throws SQLException
setTransactionIsolation
in interface Connection
SQLException
public int getTransactionIsolation() throws SQLException
getTransactionIsolation
in interface Connection
SQLException
public SQLWarning getWarnings() throws SQLException
getWarnings
in interface Connection
SQLException
public void clearWarnings() throws SQLException
clearWarnings
in interface Connection
SQLException
public Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException
createStatement
in interface Connection
SQLException
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException
prepareStatement
in interface Connection
SQLException
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException
prepareCall
in interface Connection
SQLException
public Map<String,Class<?>> getTypeMap() throws SQLException
getTypeMap
in interface Connection
SQLException
public void setTypeMap(Map<String,Class<?>> map) throws SQLException
setTypeMap
in interface Connection
SQLException
public void setHoldability(int holdability) throws SQLException
setHoldability
in interface Connection
SQLException
public int getHoldability() throws SQLException
getHoldability
in interface Connection
SQLException
public Savepoint setSavepoint() throws SQLException
setSavepoint
in interface Connection
SQLException
public Savepoint setSavepoint(String name) throws SQLException
setSavepoint
in interface Connection
SQLException
public void rollback(Savepoint savepoint) throws SQLException
rollback
in interface Connection
SQLException
public void releaseSavepoint(Savepoint savepoint) throws SQLException
releaseSavepoint
in interface Connection
SQLException
public AvaticaStatement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
createStatement
in interface Connection
SQLException
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
prepareStatement
in interface Connection
SQLException
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
prepareCall
in interface Connection
SQLException
public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException
prepareStatement
in interface Connection
SQLException
public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException
prepareStatement
in interface Connection
SQLException
public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException
prepareStatement
in interface Connection
SQLException
public Clob createClob() throws SQLException
createClob
in interface Connection
SQLException
public Blob createBlob() throws SQLException
createBlob
in interface Connection
SQLException
public NClob createNClob() throws SQLException
createNClob
in interface Connection
SQLException
public SQLXML createSQLXML() throws SQLException
createSQLXML
in interface Connection
SQLException
public boolean isValid(int timeout) throws SQLException
isValid
in interface Connection
SQLException
public void setClientInfo(String name, String value) throws SQLClientInfoException
setClientInfo
in interface Connection
SQLClientInfoException
public void setClientInfo(Properties properties) throws SQLClientInfoException
setClientInfo
in interface Connection
SQLClientInfoException
public String getClientInfo(String name) throws SQLException
getClientInfo
in interface Connection
SQLException
public Properties getClientInfo() throws SQLException
getClientInfo
in interface Connection
SQLException
public Array createArrayOf(String typeName, Object[] elements) throws SQLException
createArrayOf
in interface Connection
SQLException
public Struct createStruct(String typeName, Object[] attributes) throws SQLException
createStruct
in interface Connection
SQLException
public void setSchema(String schema) throws SQLException
setSchema
in interface Connection
SQLException
public String getSchema() throws SQLException
getSchema
in interface Connection
SQLException
public void abort(Executor executor) throws SQLException
abort
in interface Connection
SQLException
public void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException
setNetworkTimeout
in interface Connection
SQLException
public int getNetworkTimeout() throws SQLException
getNetworkTimeout
in interface Connection
SQLException
public <T> T unwrap(Class<T> iface) throws SQLException
unwrap
in interface Wrapper
SQLException
public boolean isWrapperFor(Class<?> iface) throws SQLException
isWrapperFor
in interface Wrapper
SQLException
public TimeZone getTimeZone()
Timestamp
values.protected ResultSet executeQueryInternal(AvaticaStatement statement, Meta.Signature signature, Meta.Frame firstFrame, QueryState state, boolean isUpdate) throws SQLException
statement
- Statementsignature
- Prepared queryfirstFrame
- First frame of rows, or null if we need to executestate
- The state used to create the given resultisUpdate
- Was the caller context via PreparedStatement.executeUpdate()
.SQLException
- if a database error occursprotected long[] executeBatchUpdateInternal(AvaticaPreparedStatement pstmt) throws SQLException
AvaticaPreparedStatement
.pstmt
- The prepared statement.SQLException
protected Meta.ExecuteResult prepareAndExecuteInternal(AvaticaStatement statement, String sql, long maxRowCount) throws SQLException, NoSuchStatementException
SQLException
NoSuchStatementException
protected Meta.ExecuteBatchResult prepareAndUpdateBatch(AvaticaStatement statement, List<String> queries) throws NoSuchStatementException, SQLException
NoSuchStatementException
SQLException
protected ResultSet createResultSet(Meta.MetaResultSet metaResultSet, QueryState state) throws SQLException
SQLException
protected AvaticaStatement lookupStatement(Meta.StatementHandle h) throws SQLException
SQLException
protected static AvaticaConnection.Trojan createTrojan()
public AtomicBoolean getCancelFlag(Meta.StatementHandle h) throws NoSuchStatementException
NoSuchStatementException
public <T> T invokeWithRetries(AvaticaConnection.CallableWithoutException<T> callable)
callable
- The function to invoke.public void setKerberosConnection(KerberosConnection kerberosConnection)
public KerberosConnection getKerberosConnection()
public Service getService()
public void setService(Service service)
Copyright © 2012-2024 Apache Software Foundation. All Rights Reserved.