Posted on 2006-12-12 15:41
月亮的太阳 阅读(4208)
评论(0) 编辑 收藏 所属分类:
编程
DBCP:
第一种方法:修改$CATALINA_HOME\conf\server.xml,在<GlobalNamingResources>中添加:
<Resource name="jdbc/dsname" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="200"
driverClassName="@DB-DRIVERNAME@"
username="@DB-USERNAME@" password="@DB-PASSWORD@"
url="@DB-URL@"
defaultAutoCommit="true" removeAbandoned="true"
removeAbandonedTimeout="60" logAbandoned="true"/>
然后在$CATALINA_HOME\conf\Catalina\localhost,创建应用相关的*.xml文件,在此文件的<context>中添加:
<ResourceLink
global="jdbc/dsname"
name="jdbc/dsname"
type="javax.sql.DataSourcer"/>
第二种方法:直接在$CATALINA_HOME\conf\Catalina\localhost,创建应用相关的*.xml文件,在此文件的<context>中添加:
<Resource name="jdbc/dsname" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="200"
driverClassName="@DB-DRIVERNAME@"
username="@DB-USERNAME@" password="@DB-PASSWORD@"
url="@DB-URL@"
defaultAutoCommit="true" removeAbandoned="true"
removeAbandonedTimeout="60" logAbandoned="true"/>
还有一种是官方配置:
1.修改$CATALINA_HOME\conf\server.xml,Context对应你的web应用的目录名,放到<host>中间:
<Context docBase="test" path="/test" debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/dsname" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="200"
driverClassName="@DB-DRIVERNAME@"
username="@DB-USERNAME@" password="@DB-PASSWORD@"
url="@DB-URL@"
defaultAutoCommit="true" removeAbandoned="true"
removeAbandonedTimeout="60" logAbandoned="true"/>
</Context>
2.在你的WEB应用的web.xml中添加:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/dsname</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
第一种和第三种差不多,第一种第一段其实就是用http://localhost:8080/admin添加DataSource后生成的,要多写一个WEB应用相关的XML来绑定连接池,第三种把这个文件集成到了server.xml中,和连接池的绑定交给了web.xml,但共同不方便的是如果TOMCAT下有多个应用,在开发中可能有的应用是不需要启动的,那你就要去修改server.xml.
第二种方法的优点也正是另外两种方法的缺点,个人比较喜欢第二种方法,一个是TOMCAT版本更换比较方便,是的之前备份应用相关XML就可以了;二是如果不需要启动不相关的应用直接把文件名改一下,比如说加个.bak后缀就可以了.
C3P0:
因为TOMCAT自带的DBCP有很多BUG,所有有时会使用C3P0来替代,配置方法和上边的结构基本一样,注意几个参数名称不一样就可以了,另外还要把C3P0的JAR包放到classpath
<Resource name="jdbc/name" auth="Container" type="com.mchange.v2.c3p0.ComboPooledDataSource"
maxPoolSize="30" minPoolSize="1" initialPoolSize="5" acquireIncrement="2"
idleConnectionTestPeriod="60" maxIdleTime="60"
driverClass="@DB-DRIVERNAME@"
user="@DB-USERNAME@" password="@DB-PASSWORD@"
jdbcUrl="@DB-URL@"
factory="org.apache.naming.factory.BeanFactory"/>
其实还有其它的方法,另外需要注意的一点是数据库相关的JDBC驱动要放到$CATALINA_HOME\common\lib下边,不然会class not found!