每一次Web请求都要建立一次数据库连接,建立连接是一个费时的活动,每次都要花费0.05s-1s的时间,而且系统还要分配内存资源.这个时间对于一次或几次数据库操作,或许感觉不出系统有多大的开销.可是对于现在的Web应用,尤其是大型电子商务网站,频繁的进行数据库连接操作势必占用很多的系统资源,网站的响应速度必定下降,严重的甚至会造成服务器的崩溃.对于每一次数据库连接,使用完后都要断开.否则程序出现异常而未能关闭,将会导致数据库系统中的内存泄漏,最终将不得不重启数据库.
数据库连接池(connection pool)的工作原理:
为了解决资源的频繁分配,释放所造成的问题,可以采用数据库连接池技术.数据库连接池的基本思想就是为数据库连接建立一个"缓冲池".预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从"缓冲池"中取出一个,使用完毕之后再放回去.我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接.更为重要的是我们可以通过连接池的管理机制监视数据库的连接数量,使用情况,为系统开发,测试及性能调整提供依据.
以SqlServer2000为例,将数据库驱动程序Jar文件放到Tomcat的common/lib目录下,JDBC驱动的相关Jar文件(mssqlserver.jar,msutil.jar,msbase.jar);
全局配置(Tomcat里的任何Web应用都能使用该配置的连接池)
1.打开Tomcat/conf/server.xml文件,在<GlobalNamingResources></GlobalNamingResources>中插入如下内容:
<Resource name="jdbc/poolName"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"