1. Tomcat c3p0连接池配置
(1) 修改conf/server.xml,在<GlobalNamingResources>标签内添加如下内容
<Resource name="jdbc/connPool" auth="Container" description="DB Connection" driverClass="com.mysql.jdbc.Driver" factory="org.apache.naming.factory.BeanFactory" type="com.mchange.v2.c3p0.ComboPooledDataSource" maxPoolSize="10" minPoolSize="2" acquireIncrement="2" user="root" password="root" jdbcUrl="jdbc:mysql://localhost:3306/db?autoReconnect=true" />
(2) 修改conf/context.xml,在<Context>标签内添加如下内容
<ResourceLink name="jdbc/connPool" global="jdbc/connPool" type="javax.sql.DataSource"/>
注:
① 也可修改“conf/server.xml ”,或“conf/[serviceName]/[hostName]/[contextPath].xml ”,或“web应用目录下的META-INF/context.xml” 文件。
② 修改内容也可以省去(1),并将(1)中所添加内容直接添加到上述任意一个文件的<Context>标签内。
(3) 将数据库驱动jar(若为zip,则将后缀修改为jar)及c3p0的jar放到tomcat的lib目录中
2. Tomcat连接池调用方式
(1) Java直接调用
// 初始化查找命名空间
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
// 找到DataSource
DataSource ds = (DataSource)envContext.lookup("jdbc/connPool");
或
Context initContext = new InitialContext();
DataSource ds =
(DataSource) initContext.lookup("java:comp/env/jdbc/pooledDS");
(2) 通过Spring方式调用
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"> <value>java:/comp/env/jdbc/connPool</value> </property> </bean>
3. 其它说明
(1) Resource配置说明
Resource标签的属性可自由添加,属性名为type所指定的类运行时所需的参数名。
(2) Tomcat dbcp连接池配置
添加的Resource内容如下,其它同c3p0连接池配置
<Resource name="jdbc/connPool" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" maxIdle="20" maxWait="5000" username="root" password="admin" url="jdbc:mysql://localhost:3306/bbs" maxActive="100" removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"/>
(3) tomcat 5.5以前版本添加数据源,需修改web应用的web.xml,添加如下内容
<resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/connPool</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>