Tomcat自带DBCP数据库连接池配置

Posted z_fishLong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat自带DBCP数据库连接池配置相关的知识,希望对你有一定的参考价值。

1.在Web应用中用户量非常大,对每个用户的请求都需要进行数据库操作,包括:建立连接、操作数据、释放连接,效率比较低.

数据库连接池(DBCP, Database Connection Pool)通过共享连接来减少连接的创建和释放需要的时间,从而提高效率。并且连接池可以对连接的数量进行管理从而充分利用服务器的资源

2. 配置步骤

 a)方式一:在tomcat下的server.xml中配置

 <Context path="/JSPProject" 
       docBase="JSPProject"
       debug="5" 
       reloadable="true" 
       crossContext="true">
           <Resource name="jdbc/TestDB" 
                   auth="Container" 
                   type="javax.sql.DataSource"
                   maxActive="100"  //池中最大连接数,-1为无限制
                   maxIdle="30"     //最大空闲连接数,-1为无限制
                   maxWait="10000"  //连接变成再次可用的等待时间,-1无限等待
                   username="root"
                   password="root"
                   driverClassName=“com.mysql.jdbc.Driver”    //JDBC驱动名           
                   url="jdbc:mysql://127.0.0.1:3306/JSPProject?autoReconnect=true"/>
         </Context>
注意:这种方式为tomcat下的所有webapp都配置了数据源。如果只是为特定的web程序配置数据源这种方法显然是不合适的。

 b )方式二:在META-INF新建context.xml文件,内容为

<?xml version='1.0' encoding='utf-8'?>
<Context>
<Resource name="jdbc/TestDB"
            auth="Container"
	type="javax.sql.DataSource"
	maxActive="100"
	maxIdle="30"
	maxWait="10000"
	username="root"
	password=""
	driverClassName="com.mysql.jdbc.Driver"
	url="jdbc:mysql://127.0.0.1:3306/JSPProject?autoReconnect=true"/>
</Context>
配置web.xml:
 <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/TestDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>

c)访问链接池中的连接

//设置上下文环境
Context initContext = new InitialContext();
//查找数据源
Context envContext  = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/TestDB");
//从连接池中获取连接
Connection conn = ds.getConnection();



以上是关于Tomcat自带DBCP数据库连接池配置的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat7 新的数据库连接池Tomcat jdbc pool介绍和配置

Tomcat 7 - 忽略数据库连接池参数 (DBCP)

tomcat-dbcp数据库连接池配置以及使用时候的一些坑

Tomcat连接池的配置

Tomcat连接池的配置

为啥使用 tomcat 进行数据库连接池有两种选择(tomcat-dbcp 和 tomcat-jdbc)?