Oracle UCP (Universal Connection Pool) for JDBC provides a connection pool implementation for caching JDBC connections.

A UCP JDBC connection pool can use any JDBC driver to create physical connections that are then maintained by the pool. The pool can be configured and provides a full set of properties that are used to optimize pool behavior based on the performance and availability requirements of an application.

In fact, UCP creates virtual connections that wrap real physical connections. When virtual connections are being returned to the pool, UCP does not close the underlying physical connection so it can be retrieved again.