Class ProxyConnection
java.lang.Object
io.github.blyznytsiaorg.bibernate.connectionpool.ProxyConnection
- All Implemented Interfaces:
AutoCloseable
,Connection
,Wrapper
ProxyConnection is a wrapper around a JDBC Connection that intercepts calls to create statements and provides
additional functionality such as managing statement lifecycles and releasing connections back to a connection pool.
- Since:
- 1.0
- Author:
- Blyzhnytsia Team
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionprivate final Connection
The physical JDBC Connection being wrapped.private final Queue
<Connection> The connection pool to which this connection belongs.List of statements associated with this connection.Fields inherited from interface java.sql.Connection
TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE
-
Constructor Summary
ConstructorDescriptionProxyConnection
(Connection connection, Queue<Connection> connectionPool) Constructs a ProxyConnection object with the given JDBC Connection and connection pool. -
Method Summary
Modifier and TypeMethodDescriptionvoid
void
void
void
close()
Releases this connection back to the connection pool.void
commit()
createArrayOf
(String typeName, Object[] elements) Creates a Statement object for sending SQL statements to the database.createStatement
(int resultSetType, int resultSetConcurrency) createStatement
(int resultSetType, int resultSetConcurrency, int resultSetHoldability) createStruct
(String typeName, Object[] attributes) void
boolean
getClientInfo
(String name) int
int
int
boolean
isClosed()
boolean
boolean
isValid
(int timeout) boolean
isWrapperFor
(Class<?> iface) prepareCall
(String sql) Creates a CallableStatement object for calling database stored procedures.prepareCall
(String sql, int resultSetType, int resultSetConcurrency) prepareCall
(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) prepareStatement
(String sql) Creates a PreparedStatement object for sending parameterized SQL statements to the database.prepareStatement
(String sql, int autoGeneratedKeys) prepareStatement
(String sql, int[] columnIndexes) prepareStatement
(String sql, int resultSetType, int resultSetConcurrency) prepareStatement
(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) prepareStatement
(String sql, String[] columnNames) void
release()
Releases this connection and closes all associated statements.void
releaseSavepoint
(Savepoint savepoint) void
rollback()
void
void
setAutoCommit
(boolean autoCommit) void
setCatalog
(String catalog) void
setClientInfo
(String name, String value) void
setClientInfo
(Properties properties) void
setHoldability
(int holdability) void
setNetworkTimeout
(Executor executor, int milliseconds) void
setReadOnly
(boolean readOnly) setSavepoint
(String name) void
void
setShardingKey
(ShardingKey shardingKey) void
setShardingKey
(ShardingKey shardingKey, ShardingKey superShardingKey) boolean
setShardingKeyIfValid
(ShardingKey shardingKey, int timeout) boolean
setShardingKeyIfValid
(ShardingKey shardingKey, ShardingKey superShardingKey, int timeout) void
setTransactionIsolation
(int level) void
setTypeMap
(Map<String, Class<?>> map) <T> T
-
Field Details
-
connection
The physical JDBC Connection being wrapped. -
connectionPool
The connection pool to which this connection belongs. -
statementList
List of statements associated with this connection.
-
-
Constructor Details
-
ProxyConnection
Constructs a ProxyConnection object with the given JDBC Connection and connection pool.- Parameters:
connection
- the JDBC Connection to wrapconnectionPool
- the connection pool to which this connection belongs
-
-
Method Details
-
createStatement
Creates a Statement object for sending SQL statements to the database. Adds the created PreparedStatement to the list of statements associated with this connection.- Specified by:
createStatement
in interfaceConnection
- Returns:
- a new Statement object
- Throws:
SQLException
- if a database access error occurs
-
prepareStatement
Creates a PreparedStatement object for sending parameterized SQL statements to the database. Adds the created PreparedStatement to the list of statements associated with this connection.- Specified by:
prepareStatement
in interfaceConnection
- Parameters:
sql
- the SQL statement to be sent to the database- Returns:
- a new PreparedStatement object
- Throws:
SQLException
- if a database access error occurs
-
prepareCall
Creates a CallableStatement object for calling database stored procedures. Adds the created CallableStatement to the list of statements associated with this connection.- Specified by:
prepareCall
in interfaceConnection
- Parameters:
sql
- the SQL statement to be sent to the database- Returns:
- a new CallableStatement object
- Throws:
SQLException
- if a database access error occurs
-
nativeSQL
- Specified by:
nativeSQL
in interfaceConnection
- Throws:
SQLException
-
setAutoCommit
- Specified by:
setAutoCommit
in interfaceConnection
- Throws:
SQLException
-
getAutoCommit
- Specified by:
getAutoCommit
in interfaceConnection
- Throws:
SQLException
-
commit
- Specified by:
commit
in interfaceConnection
- Throws:
SQLException
-
rollback
- Specified by:
rollback
in interfaceConnection
- Throws:
SQLException
-
close
Releases this connection back to the connection pool. Also closes all associated statements and clears the statement list.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceConnection
- Throws:
SQLException
- if a database access error occurs
-
release
Releases this connection and closes all associated statements. This method is typically called when the connection is no longer needed and can be closed entirely. It closes all associated statements and then closes the underlying physical connection to the database.- Throws:
SQLException
- if a database access error occurs
-
isClosed
- Specified by:
isClosed
in interfaceConnection
- Throws:
SQLException
-
getMetaData
- Specified by:
getMetaData
in interfaceConnection
- Throws:
SQLException
-
setReadOnly
- Specified by:
setReadOnly
in interfaceConnection
- Throws:
SQLException
-
isReadOnly
- Specified by:
isReadOnly
in interfaceConnection
- Throws:
SQLException
-
setCatalog
- Specified by:
setCatalog
in interfaceConnection
- Throws:
SQLException
-
getCatalog
- Specified by:
getCatalog
in interfaceConnection
- Throws:
SQLException
-
setTransactionIsolation
- Specified by:
setTransactionIsolation
in interfaceConnection
- Throws:
SQLException
-
getTransactionIsolation
- Specified by:
getTransactionIsolation
in interfaceConnection
- Throws:
SQLException
-
getWarnings
- Specified by:
getWarnings
in interfaceConnection
- Throws:
SQLException
-
clearWarnings
- Specified by:
clearWarnings
in interfaceConnection
- Throws:
SQLException
-
createStatement
- Specified by:
createStatement
in interfaceConnection
- Throws:
SQLException
-
prepareStatement
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException - Specified by:
prepareStatement
in interfaceConnection
- Throws:
SQLException
-
prepareCall
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException - Specified by:
prepareCall
in interfaceConnection
- Throws:
SQLException
-
getTypeMap
- Specified by:
getTypeMap
in interfaceConnection
- Throws:
SQLException
-
setTypeMap
- Specified by:
setTypeMap
in interfaceConnection
- Throws:
SQLException
-
setHoldability
- Specified by:
setHoldability
in interfaceConnection
- Throws:
SQLException
-
getHoldability
- Specified by:
getHoldability
in interfaceConnection
- Throws:
SQLException
-
setSavepoint
- Specified by:
setSavepoint
in interfaceConnection
- Throws:
SQLException
-
setSavepoint
- Specified by:
setSavepoint
in interfaceConnection
- Throws:
SQLException
-
rollback
- Specified by:
rollback
in interfaceConnection
- Throws:
SQLException
-
releaseSavepoint
- Specified by:
releaseSavepoint
in interfaceConnection
- Throws:
SQLException
-
createStatement
public Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException - Specified by:
createStatement
in interfaceConnection
- Throws:
SQLException
-
prepareStatement
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException - Specified by:
prepareStatement
in interfaceConnection
- Throws:
SQLException
-
prepareCall
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException - Specified by:
prepareCall
in interfaceConnection
- Throws:
SQLException
-
prepareStatement
- Specified by:
prepareStatement
in interfaceConnection
- Throws:
SQLException
-
prepareStatement
- Specified by:
prepareStatement
in interfaceConnection
- Throws:
SQLException
-
prepareStatement
- Specified by:
prepareStatement
in interfaceConnection
- Throws:
SQLException
-
createClob
- Specified by:
createClob
in interfaceConnection
- Throws:
SQLException
-
createBlob
- Specified by:
createBlob
in interfaceConnection
- Throws:
SQLException
-
createNClob
- Specified by:
createNClob
in interfaceConnection
- Throws:
SQLException
-
createSQLXML
- Specified by:
createSQLXML
in interfaceConnection
- Throws:
SQLException
-
isValid
- Specified by:
isValid
in interfaceConnection
- Throws:
SQLException
-
setClientInfo
- Specified by:
setClientInfo
in interfaceConnection
- Throws:
SQLClientInfoException
-
setClientInfo
- Specified by:
setClientInfo
in interfaceConnection
- Throws:
SQLClientInfoException
-
getClientInfo
- Specified by:
getClientInfo
in interfaceConnection
- Throws:
SQLException
-
getClientInfo
- Specified by:
getClientInfo
in interfaceConnection
- Throws:
SQLException
-
createArrayOf
- Specified by:
createArrayOf
in interfaceConnection
- Throws:
SQLException
-
createStruct
- Specified by:
createStruct
in interfaceConnection
- Throws:
SQLException
-
setSchema
- Specified by:
setSchema
in interfaceConnection
- Throws:
SQLException
-
getSchema
- Specified by:
getSchema
in interfaceConnection
- Throws:
SQLException
-
abort
- Specified by:
abort
in interfaceConnection
- Throws:
SQLException
-
setNetworkTimeout
- Specified by:
setNetworkTimeout
in interfaceConnection
- Throws:
SQLException
-
getNetworkTimeout
- Specified by:
getNetworkTimeout
in interfaceConnection
- Throws:
SQLException
-
beginRequest
- Specified by:
beginRequest
in interfaceConnection
- Throws:
SQLException
-
endRequest
- Specified by:
endRequest
in interfaceConnection
- Throws:
SQLException
-
setShardingKeyIfValid
public boolean setShardingKeyIfValid(ShardingKey shardingKey, ShardingKey superShardingKey, int timeout) throws SQLException - Specified by:
setShardingKeyIfValid
in interfaceConnection
- Throws:
SQLException
-
setShardingKeyIfValid
- Specified by:
setShardingKeyIfValid
in interfaceConnection
- Throws:
SQLException
-
setShardingKey
public void setShardingKey(ShardingKey shardingKey, ShardingKey superShardingKey) throws SQLException - Specified by:
setShardingKey
in interfaceConnection
- Throws:
SQLException
-
setShardingKey
- Specified by:
setShardingKey
in interfaceConnection
- Throws:
SQLException
-
unwrap
- Specified by:
unwrap
in interfaceWrapper
- Throws:
SQLException
-
isWrapperFor
- Specified by:
isWrapperFor
in interfaceWrapper
- Throws:
SQLException
-