public abstract class ConnectionCache
extends java.lang.Object
Implementations control the lifecycle via lifecycle methods, or may simple obtain new resources and close new resources every time.
This is not a pool - a cache is associated with one client class and that class is expected to use cache methods in well-defined order of get, done-with and destroy.
Modifier | Constructor and Description |
---|---|
protected |
ConnectionCache(DatabaseConnectionFactory databaseConnectionFactory,
java.lang.String sql)
Ctor.
|
Modifier and Type | Method and Description |
---|---|
protected static void |
close(Pair<java.sql.Connection,java.sql.PreparedStatement> pair)
Close resources.
|
abstract void |
destroy()
Destroys cache closing all resources cached, if any.
|
abstract void |
doneWith(Pair<java.sql.Connection,java.sql.PreparedStatement> pair)
Indicate to return the connection and statement pair after use.
|
abstract Pair<java.sql.Connection,java.sql.PreparedStatement> |
getConnection()
Returns a cached or new connection and statement pair.
|
protected Pair<java.sql.Connection,java.sql.PreparedStatement> |
makeNew()
Make a new pair of resources.
|
protected ConnectionCache(DatabaseConnectionFactory databaseConnectionFactory, java.lang.String sql)
databaseConnectionFactory
- - connection factorysql
- - statement sqlpublic abstract Pair<java.sql.Connection,java.sql.PreparedStatement> getConnection()
public abstract void doneWith(Pair<java.sql.Connection,java.sql.PreparedStatement> pair)
pair
- is the resources to returnpublic abstract void destroy()
protected static void close(Pair<java.sql.Connection,java.sql.PreparedStatement> pair)
pair
- is the resources to close.protected Pair<java.sql.Connection,java.sql.PreparedStatement> makeNew()