博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tomcat下配置数据库连接池学习篇
阅读量:6225 次
发布时间:2019-06-21

本文共 3233 字,大约阅读时间需要 10 分钟。

hot3.png

tomcat下配置数据库连接池DBCP、C3P0、Proxool 
有些是参考别人的DBCP经过亲自测试
/
step 1 : 将连接池的jar文件拷贝到tomcat的lib目录下(也将mysql驱动拷贝到tomcat的lib目录下)
1)dbcp:
tomcat默认包含tomcat-dbcp.jar,如果使用tomcat自带的dbcp则不用拷贝jar文件;
如果要使用commons-dbcp连接池,则要将commons-dbcp-Xx.jar和commons-pool.jar拷贝到tomcat的lib目录下;
2)c3p0:
拷贝c3p0-Xx.jar到tomcat的lib目录下;
3)proxool:
拷贝proxool-Xx.jar、proxool-cglib.jar、commons-logging-Xx.jar到tomcat的lib目录下;
step 2 : 打开tomcat的context.xml,进行如下配置:
在<Context>节点中添加如下内容(可以并列添加多个<Resource.../>):
<!--dbcp 类型-->
<Resource 
name="jdbc/mysqlds-dbcp" 
auth="Container" 
type="javax.sql.DataSource" 
factory="org.apache.commons.dbcp.BasicDataSourceFactory"<!--这里使用的commons-dbcp连接池-->
<!--tomcat的dbcp对应的factory为:将commons替换为tomcat(?),也可不用配置-->
driverClassName="com.mysql.jdbc.Driver" 
url="jdbc:mysql://localhost:3306/bbs?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8"
username="root"
password="root" 
maxActive="100" 
maxIdle="30"
maxWait="10000" 
>
</Resource> 
<!--
下面解释一下各属性的含义: 
name             表示指定的jndi名称(这个名字这里可以随便写) 
auth             表示认证方式,一般为Container 
type             表示数据源床型,使用标准的javax.sql.DataSource 
maxActive        表示连接池当中最大的数据库连接 
maxIdle          表示最大的空闲连接数 
maxWait          当池的数据库连接已经被占用的时候,最大等待时间 
logAbandoned     表示被丢弃的数据库连接是否做记录,以便跟踪 
username         表示数据库用户名 
password         表示数据库用户的密码 
driverClassName  表示JDBC Driver
url              表示数据库URL地址 
-->
<!--c3p0 类型-->            
<Resource 
name="jdbc/mysqlds-c3p0"
auth="Container"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
factory="org.apache.naming.factory.BeanFactory"
driverClass="com.mysql.jdbc.Driver"
jdbcUrl="jdbc:mysql://localhost:3306/bbs?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8"
user="root"
password="root" 
maxPoolSize="100"
minPoolSize="1" 
initialPoolSize="5"
acquireIncrement="2"
idleConnectionTestPeriod="60"
maxIdleTime="60"/>
<!--proxool 类型-->
<Resource name="jdbc/mysqlds-proxool"  
     auth="Container"       
     type="javax.sql.DataSource"  
     factory="org.logicalcobwebs.proxool.ProxoolDataSource"       
     proxool.alias="bbs"       
     user="root"     
     password="root"       
     delegateProperties="foo=1,bar=true"  
     proxool.jndi-name="mysqljndi"      
     proxool.driver-url="jdbc:mysql://127.0.0.1:3306/bbs"       
     proxool.driver-class="com.mysql.jdbc.Driver"     
     proxool.house-keeping-sleep-time="900000"     
     proxool.maximum-active-time="5"  
     proxool.prototype-count="3"  
     proxool.statistics="1m,15m,1d"  
     proxool.simultaneous-build-throttle="10"  
     proxool.minimum-connection-count="5"  
     proxool.maximum-connection-count="15"    
  />  
         
step 3: 编辑自己webApplication的web.xml,在<web-app>节点中添加如下内容:
<resource-ref>  
<res-ref-name>jdbc/mysqlds-dbcp</res-ref-name> 
//"jdbc/mysqlds-dbcp"与context.xml下的Resources的name属性一致
<res-type>javax.sql.DataSource</res-type>  
<res-auth>Container</res-auth>  
</resource-ref>
step 4 : 连接数据库的java代码;
Context context = new InitialContext();
DataSource ds = (DataSource) context.lookup("java:comp/env/"+"jdbc/mysqlds-dbcp");
//"jdbc/mysqlds-dbcp"与context.xml下的Resources的name属性一致;
return ds.getConnection();
-----------------------------------------------------------------------------------------------------
<Resource name="jdbc/SqlServer" auth="Container" type="javax.sql.DataSource" 
               maxActive="100" maxIdle="30" maxWait="10000" 
               username="sa" password="" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
               url="jdbc:sqlserver://localhost:1433;databaseName=bbs"/>

转载于:https://my.oschina.net/u/215476/blog/57223

你可能感兴趣的文章
php cookie
查看>>
linux下redis安装
查看>>
弃 Java 而使用 Kotlin 的你后悔了吗?| kotlin将会是最好的开发语言
查看>>
JavaScript 数据类型
查看>>
量子通信和大数据最有市场突破前景
查看>>
StringBuilder用法小结
查看>>
对‘初学者应该选择哪种编程语言’的回答——计算机达人成长之路(38)
查看>>
如何申请开通微信多客服功能
查看>>
Sr_C++_Engineer_(LBS_Engine@Global Map Dept.)
查看>>
非监督学习算法:异常检测
查看>>
jquery的checkbox,radio,select等方法总结
查看>>
Linux coredump
查看>>
Ubuntu 10.04安装水晶(Mercury)无线网卡驱动
查看>>
Myeclipes快捷键
查看>>
我的友情链接
查看>>
ToRPC:一个双向RPC的Python实现
查看>>
我的友情链接
查看>>
nginx在reload时候报错invalid PID number
查看>>
神经网络和深度学习-第二周神经网络基础-第二节:Logistic回归
查看>>
Myeclipse代码提示及如何设置自动提示
查看>>