Tomcat5.5数据库连接池的配置
数据库连接池在WEB应用的重要地位无庸质疑,但是配置起来却不是很容易的,网络上的介绍乱七八糟,害人不浅.本人亲自动手,尝试成功.
环境要求:
1、Tomcat5.5.23 并下载admin应用包
2、JDK1.5
3、MySql5.0.45
4、JDBC驱动: mysql-connector-java-5.0.4-bin.jar
5、Eclipse3.3.1版本
l 安装admin应用包,安装方法在另一文章中有过介绍,这里略过
l 在浏览器中打开:http://localhost:8080/admin输入用户名admin和密码(空).选择Data Sources选项,然后在右边的Data Source Actions中选择Create New Data Source.如图:
然后在下面的表格中填入信息.如:
然后选择Save,再选择Commit Changes结束.
l 以上步骤也可以通过直接修改conf/server.xml文件来实现,在这个文件的<GlobalNamingResources>节点中加入,
<Resource driverClassName="com.mysql.jdbc.Driver" maxActive="4"
="2" maxWait="5000" name="jdbc/mysql" password="lin"
="javax.sql.DataSource" url="jdbc:mysql://localhost/test"
="root" />
l 然后打开conf/context.xml文件,在<Context>节点中添加以下内容:
<ResourceLink name="jdbc/mysql" global="jdbc/mysql" type="javax.sql.DataSource"/>
l 在WEB项目的WEB-INF/web.xml文件中添加引用信息,如下:
<resource-ref>
<description>MySQL DB Connection Pool</description>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
l 到此配置过程结束.
l 建立测试页面Default.jsp,内容如下:
<%@ page language="java" contentType="text/html; charset=GB2312"
pageEncoding="GB2312"%>
<%@ page import="javax.naming.Context"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.sql.Connection"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>数据库连接池测试</title>
</head>
<body>
<%
out.print("Start<br/>");
try {
Context initCtx = new InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env");
Object obj = (Object) ctx.lookup("jdbc/mysql");
javax.sql.DataSource ds = (javax.sql.DataSource) obj;
Connection conn = ds.getConnection();
out.print("MySQL connection pool runs perfectly!");
conn.close();
}
catch (Exception ex) {
out.print(ex.getMessage());
ex.printStackTrace();
}
%>
</body>
</html>
l 运行进行测试,有两种方式可以选择,如果是在Eclipse的外部进行运行,可以直接打开启动Tomcat,在浏览器中打开Default.jsp页面,即可以看到结果
l 如果是要在Eclipse中运行,需要将Tomcat下的conf/目录下的context.xml文件拷贝到server下的tomcat配置中去,不然会出现错误.运行结果如下: