Object pooling is the most common topic to come up when discussing Java™ Database Connectivity (JDBC) and performance. Since many objects used in JDBC are expensive to create such as Connection, Statement, and ResultSet objects, significant performance benefits can be achieved by reusing these objects instead of creating every time you need them.
Many applications already handle object pooling on your behalf. For example, WebSphere® has extensive support for pooling JDBC objects and allows you to control how the pool is managed. Because of this, you can get the functionality you want without being concerned about your own pooling mechanisms. However, when the support is not provided, you must find a solution for all but trivial applications.