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 |
|---|---|
private boolean |
closed |
protected UnregisteredDriver |
driver |
protected AvaticaFactory |
factory |
Meta.ConnectionHandle |
handle |
Helper |
helper |
private int |
holdability |
String |
id |
protected Properties |
info |
protected long |
maxRetriesPerExecute |
protected Meta |
meta |
protected AvaticaDatabaseMetaData |
metaData |
private int |
networkTimeout |
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 |
(package private) String |
url |
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) |
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 ResultSet |
executeQueryInternal(AvaticaStatement statement,
Meta.Signature signature,
Meta.Frame firstFrame,
QueryState state)
Executes a prepared query, closing any previously open result set.
|
boolean |
getAutoCommit() |
String |
getCatalog() |
Properties |
getClientInfo() |
String |
getClientInfo(String name) |
int |
getHoldability() |
DatabaseMetaData |
getMetaData() |
int |
getNetworkTimeout() |
(package private) long |
getNumStatementRetries(Properties props)
Computes the number of retries
executeQueryInternal(AvaticaStatement, Meta.Signature, Meta.Frame, QueryState)
should retry before failing. |
String |
getSchema() |
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() |
private void |
isUpdateCapable(AvaticaStatement statement)
Returns whether a a statement is capable of updates and if so,
and the statement's
updateCount is still -1, proceeds to
get updateCount value from statement's resultSet. |
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) |
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 |
setNetworkTimeout(Executor executor,
int milliseconds) |
void |
setReadOnly(boolean readOnly) |
Savepoint |
setSavepoint() |
Savepoint |
setSavepoint(String name) |
void |
setSchema(String schema) |
void |
setTransactionIsolation(int level) |
void |
setTypeMap(Map<String,Class<?>> map) |
private Meta.ConnectionProperties |
sync() |
private boolean |
unbox(Boolean b,
boolean defaultValue)
Converts a
Boolean to a boolean, with a default value. |
private int |
unbox(Integer i,
int defaultValue)
Converts an
Integer to an int, with a default value. |
<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.
protected int statementCount
private boolean closed
private int holdability
private int networkTimeout
public final String id
public final Meta.ConnectionHandle handle
protected final UnregisteredDriver driver
protected final AvaticaFactory factory
final String url
protected final Properties info
protected final Meta meta
protected final AvaticaDatabaseMetaData metaData
public final Helper helper
public final Map<InternalProperty,Object> properties
public final Map<Integer,AvaticaStatement> statementMap
protected final long maxRetriesPerExecute
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 propertieslong getNumStatementRetries(Properties props)
executeQueryInternal(AvaticaStatement, Meta.Signature, Meta.Frame, QueryState)
should retry before failing.public ConnectionConfig config()
Properties.getProperty(String). Derived projects will
almost certainly subclass ConnectionConfig with their own
properties.public void openConnection()
public AvaticaStatement createStatement() throws SQLException
createStatement in interface ConnectionSQLExceptionpublic PreparedStatement prepareStatement(String sql) throws SQLException
prepareStatement in interface ConnectionSQLExceptionpublic CallableStatement prepareCall(String sql) throws SQLException
prepareCall in interface ConnectionSQLExceptionpublic String nativeSQL(String sql) throws SQLException
nativeSQL in interface ConnectionSQLExceptionpublic void setAutoCommit(boolean autoCommit)
throws SQLException
setAutoCommit in interface ConnectionSQLExceptionpublic boolean getAutoCommit()
throws SQLException
getAutoCommit in interface ConnectionSQLExceptionpublic void commit()
throws SQLException
commit in interface ConnectionSQLExceptionpublic void rollback()
throws SQLException
rollback in interface ConnectionSQLExceptionpublic void close()
throws SQLException
close in interface AutoCloseableclose in interface ConnectionSQLExceptionpublic boolean isClosed()
throws SQLException
isClosed in interface ConnectionSQLExceptionpublic DatabaseMetaData getMetaData() throws SQLException
getMetaData in interface ConnectionSQLExceptionpublic void setReadOnly(boolean readOnly)
throws SQLException
setReadOnly in interface ConnectionSQLExceptionpublic boolean isReadOnly()
throws SQLException
isReadOnly in interface ConnectionSQLExceptionpublic void setCatalog(String catalog) throws SQLException
setCatalog in interface ConnectionSQLExceptionpublic String getCatalog()
getCatalog in interface Connectionpublic void setTransactionIsolation(int level)
throws SQLException
setTransactionIsolation in interface ConnectionSQLExceptionpublic int getTransactionIsolation()
throws SQLException
getTransactionIsolation in interface ConnectionSQLExceptionpublic SQLWarning getWarnings() throws SQLException
getWarnings in interface ConnectionSQLExceptionpublic void clearWarnings()
throws SQLException
clearWarnings in interface ConnectionSQLExceptionpublic Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException
createStatement in interface ConnectionSQLExceptionpublic PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException
prepareStatement in interface ConnectionSQLExceptionpublic CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException
prepareCall in interface ConnectionSQLExceptionpublic Map<String,Class<?>> getTypeMap() throws SQLException
getTypeMap in interface ConnectionSQLExceptionpublic void setTypeMap(Map<String,Class<?>> map) throws SQLException
setTypeMap in interface ConnectionSQLExceptionpublic void setHoldability(int holdability)
throws SQLException
setHoldability in interface ConnectionSQLExceptionpublic int getHoldability()
throws SQLException
getHoldability in interface ConnectionSQLExceptionpublic Savepoint setSavepoint() throws SQLException
setSavepoint in interface ConnectionSQLExceptionpublic Savepoint setSavepoint(String name) throws SQLException
setSavepoint in interface ConnectionSQLExceptionpublic void rollback(Savepoint savepoint) throws SQLException
rollback in interface ConnectionSQLExceptionpublic void releaseSavepoint(Savepoint savepoint) throws SQLException
releaseSavepoint in interface ConnectionSQLExceptionpublic AvaticaStatement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
createStatement in interface ConnectionSQLExceptionpublic PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
prepareStatement in interface ConnectionSQLExceptionpublic CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
prepareCall in interface ConnectionSQLExceptionpublic PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException
prepareStatement in interface ConnectionSQLExceptionpublic PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException
prepareStatement in interface ConnectionSQLExceptionpublic PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException
prepareStatement in interface ConnectionSQLExceptionpublic Clob createClob() throws SQLException
createClob in interface ConnectionSQLExceptionpublic Blob createBlob() throws SQLException
createBlob in interface ConnectionSQLExceptionpublic NClob createNClob() throws SQLException
createNClob in interface ConnectionSQLExceptionpublic SQLXML createSQLXML() throws SQLException
createSQLXML in interface ConnectionSQLExceptionpublic boolean isValid(int timeout)
throws SQLException
isValid in interface ConnectionSQLExceptionpublic void setClientInfo(String name, String value) throws SQLClientInfoException
setClientInfo in interface ConnectionSQLClientInfoExceptionpublic void setClientInfo(Properties properties) throws SQLClientInfoException
setClientInfo in interface ConnectionSQLClientInfoExceptionpublic String getClientInfo(String name) throws SQLException
getClientInfo in interface ConnectionSQLExceptionpublic Properties getClientInfo() throws SQLException
getClientInfo in interface ConnectionSQLExceptionpublic Array createArrayOf(String typeName, Object[] elements) throws SQLException
createArrayOf in interface ConnectionSQLExceptionpublic Struct createStruct(String typeName, Object[] attributes) throws SQLException
createStruct in interface ConnectionSQLExceptionpublic void setSchema(String schema) throws SQLException
setSchema in interface ConnectionSQLExceptionpublic String getSchema()
getSchema in interface Connectionpublic void abort(Executor executor) throws SQLException
abort in interface ConnectionSQLExceptionpublic void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException
setNetworkTimeout in interface ConnectionSQLExceptionpublic int getNetworkTimeout()
throws SQLException
getNetworkTimeout in interface ConnectionSQLExceptionpublic <T> T unwrap(Class<T> iface) throws SQLException
unwrap in interface WrapperSQLExceptionpublic boolean isWrapperFor(Class<?> iface) throws SQLException
isWrapperFor in interface WrapperSQLExceptionpublic TimeZone getTimeZone()
Timestamp values.protected ResultSet executeQueryInternal(AvaticaStatement statement, Meta.Signature signature, Meta.Frame firstFrame, QueryState state) throws SQLException
statement - Statementsignature - Prepared queryfirstFrame - First frame of rows, or null if we need to executestate - The state used to create the given resultSQLException - if a database error occursprivate void isUpdateCapable(AvaticaStatement statement) throws SQLException
updateCount is still -1, proceeds to
get updateCount value from statement's resultSet.
Handles "ROWCOUNT" object as Number or List
statement - StatementSQLException - on errorprotected Meta.ExecuteResult prepareAndExecuteInternal(AvaticaStatement statement, String sql, long maxRowCount) throws SQLException, NoSuchStatementException
SQLExceptionNoSuchStatementExceptionprotected ResultSet createResultSet(Meta.MetaResultSet metaResultSet, QueryState state) throws SQLException
SQLExceptionprotected AvaticaStatement lookupStatement(Meta.StatementHandle h) throws SQLException
SQLExceptionprotected static AvaticaConnection.Trojan createTrojan()
private boolean unbox(Boolean b, boolean defaultValue)
Boolean to a boolean, with a default value.private int unbox(Integer i, int defaultValue)
Integer to an int, with a default value.private Meta.ConnectionProperties sync()
public <T> T invokeWithRetries(AvaticaConnection.CallableWithoutException<T> callable)
callable - The function to invoke.Copyright © 2012–2016 The Apache Software Foundation. All rights reserved.