一、tomcat5.5的数据库连接池配置(tomcat不与Eclipse整合)
1,在Tomcat5.5\conf\server.xml的GlobalNamingResources里添加:
<Resource
name="jdbc/mysql"
type="javax.sql.DataSource"
maxActive="4"
maxIdle="2"
username="root"
maxWait="5000"
driverClassName="com.mysql.jdbc.Driver"
password="123456"
url="jdbc:mysql://localhost:3306/forum"/>
2,在context.xml添加:(这一步是使得每一个项目都能够用到第一步所配置的连接池)
<ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.DataSource"/>
3,测试文件:
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page session="false"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>test for DB connection</title>
<%
out.print("beginning testing...");
out.print("<br>");
DataSource ds = null;
try {
InitialContext ctx = new InitialContext();
out.println("1");
ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mysql");
out.println(ds);
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
// test是数据库已有的表,
//这里的数据库是前文提及的Data Source URL配置里包含的数据库。
String strSql = " select * from user";
ResultSet rs = stmt.executeQuery(strSql);
while (rs.next()) {
out.print(rs.getString(1));
}
out.print("<br>");
out.print("end testing.");
} catch (Exception ex) {
out.print("error:" + ex.getMessage());
ex.printStackTrace();
}
%>
</head>
<body>
</body>
</html>
二、在Eclipse中创建一个与Tomcat相关联的Service后,Tomcat数据库连接池的配置
1,首先配置Tomcat自己的数据库连接池,方法同情况一。
这一步通过实验得知,即使这里不配置,也行。
Eclipse帮我们通过安装的Tomcat创建了一个Eclipse自己的server,这个server和我们安装的Tomcat服务器是分开的、独立的, 这个server有自己的server.xml和web.xml。
当我们配置连接池的时候只需要下面两步就可以了。
与配置Tomcat的连接池不同的是,Eclipse帮我们生成的服务器没有context.xml;
所以我们就通过第3步来使用我们在第二步所配置的连接池。
2,在Eclipse中打开Server中的server.xml然后也要添加:
<Resource
name="jdbc/mysql"
type="javax.sql.DataSource"
maxActive="4"
maxIdle="2"
username="root"
maxWait="5000"
driverClassName="com.mysql.jdbc.Driver"
password="123456"
url="jdbc:mysql://localhost:3306/forum"/>
3,在最下面的<host><Context></Context></Host>中添加ResourceLink:
<Context docBase="forum" path="/forum" reloadable="true" source="org.eclipse.jst.j2ee.server:forum">
<ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.DataSource"/>
</Context>
4,在你的项目的web.xml的<web-app></web-app>中添加如下:
<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>
5可以写一个类进行测试:
import java.sql.*;
import javax.naming.*;
import javax.sql.*;
public class DataBase
{
private String name="";
public String execute()
{
DataSource ds = null;
try{
InitialContext ctx = new InitialContext();
ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mysql");
System.out.println(ds);
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
// test是数据库已有的表,
//这里的数据库是前文提及的Data Source URL配置里包含的数据库。
String strSql = " select * from user";
ResultSet rs = stmt.executeQuery(strSql);
while (rs.next()) {
System.out.println(rs.getString(1));
}
conn.close();
stmt.close();
}
catch (Exception e)
{
e.printStackTrace();
System.out.print(e.getMessage());
}
return "success";
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lddzmy1234/archive/2008/09/18/2947761.aspx