C - the Connection typejava.lang.AutoCloseable, java.sql.Connection, java.sql.Wrapper, TrackedUsepublic class ManagedConnection<C extends java.sql.Connection> extends DelegatingConnection<C>
When enlisted in a transaction the setAutoCommit(), commit(), rollback(), and setReadOnly() methods throw a SQLException. This is necessary to assure that the transaction completes as a single unit.
| Modifier and Type | Class | Description |
|---|---|---|
protected class |
ManagedConnection.CompletionListener |
Delegates to
transactionComplete() for transaction completion events. |
| Constructor | Description |
|---|---|
ManagedConnection(ObjectPool<C> pool,
TransactionRegistry transactionRegistry,
boolean accessToUnderlyingConnectionAllowed) |
Constructs a new instance responsible for managing a database connection in a transactional environment.
|
| Modifier and Type | Method | Description |
|---|---|---|
protected void |
checkOpen() |
|
void |
close() |
Closes the underlying connection, and close any Statements that were not explicitly closed.
|
void |
commit() |
|
C |
getDelegate() |
Returns my underlying
Connection. |
java.sql.Connection |
getInnermostDelegate() |
If my underlying
Connection is not a DelegatingConnection, returns it, otherwise recursively
invokes this method on my delegate. |
boolean |
isAccessToUnderlyingConnectionAllowed() |
If false, getDelegate() and getInnermostDelegate() will return null.
|
void |
rollback() |
|
void |
setAutoCommit(boolean autoCommit) |
|
void |
setReadOnly(boolean readOnly) |
|
protected void |
transactionComplete() |
addTrace, clearTrace, getLastUsed, getTrace, removeTrace, setLastUsed, setLastUsedbeginRequest, endRequest, setShardingKey, setShardingKey, setShardingKeyIfValid, setShardingKeyIfValidabort, activate, clearCachedState, clearWarnings, closeInternal, createArrayOf, createBlob, createClob, createNClob, createSQLXML, createStatement, createStatement, createStatement, createStruct, getAutoCommit, getCacheState, getCatalog, getClientInfo, getClientInfo, getDefaultQueryTimeout, getDelegateInternal, getHoldability, getInnermostDelegateInternal, getMetaData, getNetworkTimeout, getSchema, getTransactionIsolation, getTypeMap, getWarnings, handleException, innermostDelegateEquals, isClosed, isClosedInternal, isReadOnly, isValid, isWrapperFor, nativeSQL, passivate, prepareCall, prepareCall, prepareCall, prepareStatement, prepareStatement, prepareStatement, prepareStatement, prepareStatement, prepareStatement, releaseSavepoint, rollback, setCacheState, setCatalog, setClientInfo, setClientInfo, setClosedInternal, setDefaultQueryTimeout, setDelegate, setHoldability, setNetworkTimeout, setSavepoint, setSavepoint, setSchema, setTransactionIsolation, setTypeMap, toString, unwrappublic ManagedConnection(ObjectPool<C> pool, TransactionRegistry transactionRegistry, boolean accessToUnderlyingConnectionAllowed) throws java.sql.SQLException
pool - The connection pool.transactionRegistry - The transaction registry.accessToUnderlyingConnectionAllowed - Whether or not to allow access to the underlying Connection.java.sql.SQLException - Thrown when there is problem managing transactions.protected void checkOpen()
throws java.sql.SQLException
checkOpen in class DelegatingConnection<C extends java.sql.Connection>java.sql.SQLExceptionpublic void close()
throws java.sql.SQLException
DelegatingConnectionfalseclose in interface java.lang.AutoCloseableclose in interface java.sql.Connectionclose in class DelegatingConnection<C extends java.sql.Connection>java.sql.SQLExceptionprotected void transactionComplete()
public void setAutoCommit(boolean autoCommit)
throws java.sql.SQLException
setAutoCommit in interface java.sql.ConnectionsetAutoCommit in class DelegatingConnection<C extends java.sql.Connection>java.sql.SQLExceptionpublic void commit()
throws java.sql.SQLException
commit in interface java.sql.Connectioncommit in class DelegatingConnection<C extends java.sql.Connection>java.sql.SQLExceptionpublic void rollback()
throws java.sql.SQLException
rollback in interface java.sql.Connectionrollback in class DelegatingConnection<C extends java.sql.Connection>java.sql.SQLExceptionpublic void setReadOnly(boolean readOnly)
throws java.sql.SQLException
setReadOnly in interface java.sql.ConnectionsetReadOnly in class DelegatingConnection<C extends java.sql.Connection>java.sql.SQLExceptionpublic boolean isAccessToUnderlyingConnectionAllowed()
public C getDelegate()
DelegatingConnectionConnection.getDelegate in class DelegatingConnection<C extends java.sql.Connection>Connection.public java.sql.Connection getInnermostDelegate()
DelegatingConnectionConnection is not a DelegatingConnection, returns it, otherwise recursively
invokes this method on my delegate.
Hence this method will return the first delegate that is not a DelegatingConnection, or null when
no non-DelegatingConnection delegate can be found by traversing this chain.
This method is useful when you may have nested DelegatingConnections, and you want to make sure to obtain
a "genuine" Connection.
getInnermostDelegate in class DelegatingConnection<C extends java.sql.Connection>Copyright © 2000-2018 Apache Software Foundation. All Rights Reserved.