tomcat5 mysql dbcp配置及使用实例

java有很多种开源数据库连接池,我只会用dbcp,今天才会用。记录一下,免得忘了。

闲言少叙,进入正题。

分三步。

第一步:搞定驱动包。

将dbcp和mysql_connector驱动包拷贝到,tomcat---common----lib目录下。

如果没有驱动包,我有:

http://download.csdn.net/detail/wkupaochuan/4220085

http://download.csdn.net/detail/wkupaochuan/4242622

第二步:修改context.xml配置文件

到tomcat-----conf下找到context.xml文件,在<Context></Context>之间加入如下代码:

<Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" username="root" password="admin" maxActive="30" maxIdle="10" maxWait="1000" />

子节点说明:
name----连接池名称
auth----
type----类型为dataSource
driverClassName----数据库连接驱动
url----数据库url,最后的test为要使用的数据库名称
username----数据库连接用户名
password----密码
maxActive----最大连接数
maxIdle----
maxWait----最大等待时长

第三步:修改项目web.xml文件

在web.xml中加入如下代码:

<resource-ref> <res-ref-name>jdbc/test</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>

子节点说明:
res-ref-name-----连接池名字,一定要跟context.xml中的名字一致。
res-type----类型,也要跟context.xml中一致。
res-auth----

最后就是测试了:上一个jsp页面测试

<%@ page language="java" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <%@page import="javax.naming.*" %> <%@page import="javax.sql.DataSource" %> <html> <head> <title>test</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <% Context ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/test");//注意这儿的连接池名称:jdbc/test Connection conn = ds.getConnection(); out.print(conn.toString()); %> </body> </html>


如果输出了类似于:jdbc:mysql://localhost:3306/test, UserName=root@localhost, MySQL-AB JDBC Driver的句子,就说明成功了。

总结:
一:希望高手指点<res-auth>Container</res-auth>的含义,还有maxIdle="10"的含义。
二:数据库连接池的优点在于提前初始化一部分连接,需要用时直接从连接池中拿,省
去了反复建立连接的时间。如果某个连接被闲置占用时间过长就释放,节省了资源。
所以,关键点就在于如何在java web中初始化连接,最好的方法就是随着服务器的
启动初始化,及在配置文件中设置。说这些是因为,之前我在java project中练习
过连接池的使用,但那是要在main里面用程序初始化的,后来想在java web中使用,
愚钝了,不知道怎么办了。网上看了好多帖子得到了现在的感想。
三:我逃避了一点,连接池如何释放闲置占用时间过长的连接呢?是在maxWait中设置的
吧?原理就不懂了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值