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
FieldsModifier and TypeFieldDescriptionprivate final ConnectionThe 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
ConstructorsConstructorDescriptionProxyConnection(Connection connection, Queue<Connection> connectionPool) Constructs a ProxyConnection object with the given JDBC Connection and connection pool. -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidvoidvoidclose()Releases this connection back to the connection pool.voidcommit()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) voidbooleangetClientInfo(String name) intintintbooleanisClosed()booleanbooleanisValid(int timeout) booleanisWrapperFor(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) voidrelease()Releases this connection and closes all associated statements.voidreleaseSavepoint(Savepoint savepoint) voidrollback()voidvoidsetAutoCommit(boolean autoCommit) voidsetCatalog(String catalog) voidsetClientInfo(String name, String value) voidsetClientInfo(Properties properties) voidsetHoldability(int holdability) voidsetNetworkTimeout(Executor executor, int milliseconds) voidsetReadOnly(boolean readOnly) setSavepoint(String name) voidvoidsetShardingKey(ShardingKey shardingKey) voidsetShardingKey(ShardingKey shardingKey, ShardingKey superShardingKey) booleansetShardingKeyIfValid(ShardingKey shardingKey, int timeout) booleansetShardingKeyIfValid(ShardingKey shardingKey, ShardingKey superShardingKey, int timeout) voidsetTransactionIsolation(int level) voidsetTypeMap(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:
createStatementin 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:
prepareStatementin 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:
prepareCallin 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:
nativeSQLin interfaceConnection- Throws:
SQLException
-
setAutoCommit
- Specified by:
setAutoCommitin interfaceConnection- Throws:
SQLException
-
getAutoCommit
- Specified by:
getAutoCommitin interfaceConnection- Throws:
SQLException
-
commit
- Specified by:
commitin interfaceConnection- Throws:
SQLException
-
rollback
- Specified by:
rollbackin interfaceConnection- Throws:
SQLException
-
close
Releases this connection back to the connection pool. Also closes all associated statements and clears the statement list.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein 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:
isClosedin interfaceConnection- Throws:
SQLException
-
getMetaData
- Specified by:
getMetaDatain interfaceConnection- Throws:
SQLException
-
setReadOnly
- Specified by:
setReadOnlyin interfaceConnection- Throws:
SQLException
-
isReadOnly
- Specified by:
isReadOnlyin interfaceConnection- Throws:
SQLException
-
setCatalog
- Specified by:
setCatalogin interfaceConnection- Throws:
SQLException
-
getCatalog
- Specified by:
getCatalogin interfaceConnection- Throws:
SQLException
-
setTransactionIsolation
- Specified by:
setTransactionIsolationin interfaceConnection- Throws:
SQLException
-
getTransactionIsolation
- Specified by:
getTransactionIsolationin interfaceConnection- Throws:
SQLException
-
getWarnings
- Specified by:
getWarningsin interfaceConnection- Throws:
SQLException
-
clearWarnings
- Specified by:
clearWarningsin interfaceConnection- Throws:
SQLException
-
createStatement
- Specified by:
createStatementin interfaceConnection- Throws:
SQLException
-
prepareStatement
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException - Specified by:
prepareStatementin interfaceConnection- Throws:
SQLException
-
prepareCall
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException - Specified by:
prepareCallin interfaceConnection- Throws:
SQLException
-
getTypeMap
- Specified by:
getTypeMapin interfaceConnection- Throws:
SQLException
-
setTypeMap
- Specified by:
setTypeMapin interfaceConnection- Throws:
SQLException
-
setHoldability
- Specified by:
setHoldabilityin interfaceConnection- Throws:
SQLException
-
getHoldability
- Specified by:
getHoldabilityin interfaceConnection- Throws:
SQLException
-
setSavepoint
- Specified by:
setSavepointin interfaceConnection- Throws:
SQLException
-
setSavepoint
- Specified by:
setSavepointin interfaceConnection- Throws:
SQLException
-
rollback
- Specified by:
rollbackin interfaceConnection- Throws:
SQLException
-
releaseSavepoint
- Specified by:
releaseSavepointin interfaceConnection- Throws:
SQLException
-
createStatement
public Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException - Specified by:
createStatementin interfaceConnection- Throws:
SQLException
-
prepareStatement
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException - Specified by:
prepareStatementin interfaceConnection- Throws:
SQLException
-
prepareCall
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException - Specified by:
prepareCallin interfaceConnection- Throws:
SQLException
-
prepareStatement
- Specified by:
prepareStatementin interfaceConnection- Throws:
SQLException
-
prepareStatement
- Specified by:
prepareStatementin interfaceConnection- Throws:
SQLException
-
prepareStatement
- Specified by:
prepareStatementin interfaceConnection- Throws:
SQLException
-
createClob
- Specified by:
createClobin interfaceConnection- Throws:
SQLException
-
createBlob
- Specified by:
createBlobin interfaceConnection- Throws:
SQLException
-
createNClob
- Specified by:
createNClobin interfaceConnection- Throws:
SQLException
-
createSQLXML
- Specified by:
createSQLXMLin interfaceConnection- Throws:
SQLException
-
isValid
- Specified by:
isValidin interfaceConnection- Throws:
SQLException
-
setClientInfo
- Specified by:
setClientInfoin interfaceConnection- Throws:
SQLClientInfoException
-
setClientInfo
- Specified by:
setClientInfoin interfaceConnection- Throws:
SQLClientInfoException
-
getClientInfo
- Specified by:
getClientInfoin interfaceConnection- Throws:
SQLException
-
getClientInfo
- Specified by:
getClientInfoin interfaceConnection- Throws:
SQLException
-
createArrayOf
- Specified by:
createArrayOfin interfaceConnection- Throws:
SQLException
-
createStruct
- Specified by:
createStructin interfaceConnection- Throws:
SQLException
-
setSchema
- Specified by:
setSchemain interfaceConnection- Throws:
SQLException
-
getSchema
- Specified by:
getSchemain interfaceConnection- Throws:
SQLException
-
abort
- Specified by:
abortin interfaceConnection- Throws:
SQLException
-
setNetworkTimeout
- Specified by:
setNetworkTimeoutin interfaceConnection- Throws:
SQLException
-
getNetworkTimeout
- Specified by:
getNetworkTimeoutin interfaceConnection- Throws:
SQLException
-
beginRequest
- Specified by:
beginRequestin interfaceConnection- Throws:
SQLException
-
endRequest
- Specified by:
endRequestin interfaceConnection- Throws:
SQLException
-
setShardingKeyIfValid
public boolean setShardingKeyIfValid(ShardingKey shardingKey, ShardingKey superShardingKey, int timeout) throws SQLException - Specified by:
setShardingKeyIfValidin interfaceConnection- Throws:
SQLException
-
setShardingKeyIfValid
- Specified by:
setShardingKeyIfValidin interfaceConnection- Throws:
SQLException
-
setShardingKey
public void setShardingKey(ShardingKey shardingKey, ShardingKey superShardingKey) throws SQLException - Specified by:
setShardingKeyin interfaceConnection- Throws:
SQLException
-
setShardingKey
- Specified by:
setShardingKeyin interfaceConnection- Throws:
SQLException
-
unwrap
- Specified by:
unwrapin interfaceWrapper- Throws:
SQLException
-
isWrapperFor
- Specified by:
isWrapperForin interfaceWrapper- Throws:
SQLException
-