public class AttributeRestoringConnectionInvocationHandler extends Object implements InvocationHandler
Protects a
's attributes from being permanently modfied.
Connection
Wraps a provided
such that its auto
commit and transaction isolation attributes can be overwritten, but
will automatically restored to their original values when the connection
is actually closed (and potentially returned to a pool for reuse).
Connection
Constructor and Description |
---|
AttributeRestoringConnectionInvocationHandler(Connection conn) |
Modifier and Type | Method and Description |
---|---|
void |
close()
Attempts to restore the auto commit and transaction isolation connection
attributes of the wrapped connection to their original values (if they
were overwritten), before finally actually closing the wrapped connection.
|
protected org.slf4j.Logger |
getLog() |
Connection |
getWrappedConnection()
Gets the underlying connection to which all operations ultimately
defer.
|
Object |
invoke(Object proxy,
Method method,
Object[] args) |
void |
restoreOriginalAtributes()
Attempts to restore the auto commit and transaction isolation connection
attributes of the wrapped connection to their original values (if they
were overwritten).
|
void |
setAutoCommit(boolean autoCommit)
Sets this connection's auto-commit mode to the given state, saving
the original mode.
|
void |
setTransactionIsolation(int level)
Attempts to change the transaction isolation level to the given level, saving
the original level.
|
public AttributeRestoringConnectionInvocationHandler(Connection conn)
protected org.slf4j.Logger getLog()
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
invoke
in interface InvocationHandler
Throwable
public void setAutoCommit(boolean autoCommit) throws SQLException
SQLException
public void setTransactionIsolation(int level) throws SQLException
SQLException
public Connection getWrappedConnection()
java.sql.Connection
interface.public void restoreOriginalAtributes()
public void close() throws SQLException
SQLException
Copyright 2001-2019, Terracotta, Inc.