使用传统的方式开发 JDBC 应用时,要为每一次请求建立一次数据库连接,因此在一个这样 Web 应用中,建立数据库连接的操作是系统中代价最大的操作之一。而且,你必须去管理每一个连接,确保他们能被正确关闭,如果出现程序异常而导致某些连接未能关闭,将导致数据库系统中的内存泄露,最终将不得不重启数据库。针对以上问题,首先想到可以采用一个全局的 Connection 对象,创建后就不关闭,以后程序一直使用它,这样就不存在每次创建、关闭的问题了。但是,同一个连接使用次数过多,将会导致连接的不稳定,进而会导致 Web 服务器的频频重启。故而,这种方法也不可取。而连接池技术可以解决上述问题。连接池最基本的思想就是预先建立一些连接放置于内存对象中以备使用,当程序需要建立数据库连接时,只须从内存中取出一个来使用,使用完毕后,只需放回内存即可。而连接的创建和关闭都由连接池来管理。同时,还可以通过设置连接池的参数来控制连接池中的连接数、每个连接的最大使用次数等。通过使用连接池,将大大提高程序效率。
做为 Sun 公司推荐的 JSP、Servlet 容器,Tomcat 在 4.0 以上版本支持连接池机制,本文的讨论基于 Tomcat 4.1.24 以及 Oracle 8i 数据库环境。