Tomcat7.0配置DBCP连接池实战教程

需积分: 17 1 下载量 43 浏览量 更新于2024-09-12 收藏 2KB TXT 举报
本资源提供了一个关于如何在Tomcat 7.0中配置JDBC连接池(DBCP)的实例,特别关注了如何为名为"jsptest"的应用创建配置文件。配置过程涉及到在Tomcat安装目录下的`conf\Catalina\localhost`目录下创建一个与应用同名的XML文件(例如`jsptest.xml`),并在其中定义数据源参数。 在`jsptest.xml`文件中,我们看到以下关键配置元素: 1. `<Context>`:这是Tomcat的上下文元素,设置`reloadable="true"`表示当应用类改变时,Tomcat会自动重新加载应用。 2. `<Resource>`:定义了一个名为`jdbc/jsptest.student`的数据源,`auth="Container"`表明认证由容器(即Tomcat)处理。类型`type="javax.sql.DataSource"`指定这是一个数据源。接着,配置了数据库驱动`driverClassName="com.mysql.jdbc.Driver"`,数据库URL`url="jdbc:mysql://127.0.0.1:3306/jsptest"`,用户名`username="root"`和密码`password="admin"`。 3. `maxActive`、`maxIdle`和`maxWait`:这些参数分别设置了最大活动连接数(30)、最大空闲连接数(10)以及等待连接的最大时间(-1表示无限制)。 4. `factory`属性设置为`org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory`,用于创建Apache DBCP的数据源工厂。 5. `removeAbandoned`、`removeAbandonedTimeout`和`logAbandoned`:这些属性是DBCP连接池的高级特性,用于管理长时间未使用的连接。`removeAbandoned="true"`启用废弃连接的自动移除,`removeAbandonedTimeout="1"`表示如果连接超过1秒未被使用则视为废弃,`logAbandoned="true"`则开启废弃连接的日志记录。 在`DBPool.jsp`中,可以看到JSP页面使用了Java代码来访问和操作数据源。导入了必要的Java包,包括`java.sql.*`、`javax.sql.*`、`javax.naming.*`,这些包包含了处理数据库连接和JNDI查找所需的类。 JSP页面通过JNDI查找找到之前在XML文件中定义的数据源,然后获取数据库连接并进行SQL操作。这展示了在JSP应用中如何利用配置好的连接池来执行数据库查询,确保高效且可靠的数据库连接管理。 总结起来,这个实例详细介绍了在Tomcat中配置JDBC连接池(DBCP)的步骤,包括XML配置文件的创建和内容,以及在JSP页面中如何使用配置好的数据源进行数据库交互。这对于理解和实践JSP应用的数据库连接池管理具有很高的参考价值。
2007-11-23 上传
数据库连接池配置

环境:xp2+IE7.0+tomcat5.028+mysql5.018

1.假定tomcat 安装目录为:D:\Tomcat5

2.假定程序目录为: D:\web\WebRoot

目录设置请看WebRoot.xml 中有下面这句代码:

<Context path="/WebRoot" docBase="D:/web/WebRoot" debug="0" reloadable="true" >

3.假定mysql数据库名为:mydb,登录用户名为:root,密码为:123
请看WebRoot.xml 中有下面这句代码:

<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value>123</value>
</parameter>

<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/mydb?autoReconnect=true</value>
</parameter>


4. 请将 WebRoot.xml copy到
D:\Tomcat5\conf\Catalina\localhost\下
数据库的配置就在这个文件中

5. 文件mysql-connector-java-5.0.5-bin.jar 存放于
D:\web\WebRoot\WEB-INF\Lib\下,最好在也存一个在
D:\Tomcat5\common\lib\下

6. 我所有配置都没有设计到tomcat的server.xml,有的人在这个文件中做了数据库
的配置是没有必要的,因为WebRoot.xml已经有了这些配置。

7. web.xml配置

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<description>MySQL Connection</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

</web-app>

8 .

<%
Context ctx=new InitialContext();
if(ctx==null)
{throw new Exception("没有匹配的环境"); }
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysql");
if(ds==null)
{throw new Exception("没有匹配数据库"); }

con=ds.getConnection();

sql=con.createStatement();

%>


附:

最后完成的目录及文件:

1)D:\Tomcat5\conf\Catalina\localhost\WebRoot.xml

2)D:\web\WebRoot\WEB-INF\web.xml


3) D:\web\WebRoot\WEB-INF\lib\mysql-connector-java-5.0.5-bin.jar
D:\Tomcat5\common\lib\mysql-connector-java-5.0.5-bin.jar(不是必须的)

4)D:\web\WebRoot\ mysql_JNDI.jsp


最后运行:
http://localhost/WebRoot/mysql_JNDI.jsp (我的端口号: 80)

OK