我已经成功配置了,各位高手可能有其他的配置方案或者步骤,比我的简洁、有效;我这只是个简单的演示,希望大家发现问题后能给我指点一下哈~我的邮件:patriotlml@gmail.com
我用的是mysql5.0+tomcat5.5XX,步骤如下:
第一:下载MySQL的JDBC驱动,拷贝至$TOMCAT_HOME/common/lib/目录下
第二:配置Tomcat数据源(注意:tomcat5和tomcat5.5数据源配置是有差异的,此处为5.5的)
修改$TOMCAT_HOME/conf/server.xml,在</Host>前加上:

<Context path="/yourapp" docBase="yourapp"
debug= "99" reloadable="true" crossContext="true" verbosity="DEBUG">
<Resource name="jdbc/yourresourcename" auth="Container"
type="javax.sql.DataSource" password="admin"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
username="root"
url="jdbc:mysql://localhost:3306/yourdatabase?autoReconnect=true"
maxActive="4"/>
</Context>

注意,在每个web应用中都要在server.xml中定义此webapp的Resource.
其中各项的意义见附注。
第三:声明你的资源引用
这里我们为JDBC数据源建立的JNDI资源名为“jdbc/exam”,需要在web应用部署描述文件web.xml中 添加资源声明:

<resource-ref>
<description>
Resource reference to a factory for java.sql.Connection
instances that may be used for talking to a particular
database that is configured in the server.xml file.
</description>
<res-ref-name>
jdbc/exam
</res-ref-name>
<res-type>
javax.sql.DataSource
</res-type>
<res-auth>
Container
</res-auth>
</resource-ref>

第四:使用
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource)envCtx.lookup("jdbc/exam");
Connection conn = ds.getConnection();
... use this connection to access the database ...
conn.close();//这里并不是真正的关闭,而是释放到数据库连接池中
注意:Tomcat5.5不支持ConnectionPoolDataSource接口。
第五: 参考
* http://tomcat.apache.org/tomcat-5.5-doc/jndi-resources-howto.html
附注如下:
Tomcat标准数据源资源工厂配置项如下:
* driverClassName - 所使用的JDBC驱动类全称。
* maxActive - 同一时刻可以自数据库连接池中被分配的最大活动实例数。
* maxIdle - 同一时刻数据库连接池中处于非活动状态的最大连接数。
* maxWait - 当连接池中没有可用连接时,连接池在抛出异常前将等待的最大时间,单位毫秒。
* password - 传给JDBC驱动的数据库密码。
* url - 传给JDBC驱动的连接URL。
* user - 传给JDBC驱动的数据库用户名。
* validationQuery - 一个SQL查询语句,用于在连接被返回给应用前的连接池验证。如果指定了该属性,则必为至少返回一行记录的SQL SELECT语句。
一、配置环境变量:
windowsXP + sp2
softe version:
jdk-1_5_0_01
tomcat5.5.12
mysql4.1.14
mysql-connector-java-3.1.111-bin.jar
路径: tomcat5在C:\Tomcat 5.5;
mysql在C:\Program Files\MySQL\MySQL Server 4.1
jdk在C:\jdk1.5.0_01
Path(在原来的基础上加上):C:\Tomcat 5.5\bin;C:\jdk1.5.0_01;C:\jdk1.5.0_01\bin;C:\Tomcat 5.5\common\lib\servlet-api.jar;C:\Program Files\MySQL\MySQL Server 4.1\bin
CLASSPATH:C:\Tomcat 5.5\common\lib\servlet-api.jar;C:\Tomcat 5.5\common\lib\jsp-api.jar
JAVA_HOME:\jdk1.5.0_01
CATALINA_HOME:C:\Tomcat 5.5
二、建立测试数据库
在mysql中建立一个mywebdb数据库,同时创建一个表tested如下
create database mywebdb
create table tested
(
id int(2),
name varchar(6)
);
然后插入两条测试数据如下
insert into member values(1,"Holmes");
insert into member values(2,"conan");
至此,数据库准备完毕
三、Tomcat5数据源配置
1 以admin账户登入找到TomcatServer/Service/Host/你的Web程序名/DataSource //-->点击这里 。
2 选择“Create New Data Source” 。
3 填写信息
JNDI Name: jdbc/mywebdb //-->连接池名字
Data Source URL: jdbc:mysql://localhost:3306/mywebdb?autoReconnect=true
JDBC Driver Class: com.mysql.jdbc.Driver
//驱动需下载。
User Name: //数据库用户名 。
Password: //数据库密码 。
Max. Active Connections: //最大活动连结数 ,0为不限 。
Max. Idle Connections: //最大等待连结数 ,0为不限 。
Max. Wait for Connection: //建立连接超时时间ms,-1为无限 。
4保存以后一定要点commit changes。
5不用重启,只要刷新页面就可以了。
四、配置web.xml
web.xml位于C:\Tomcat 5.5\webapps\ROOT\WEB-INF下,也即是你的WEB里的web.xml。(我是直接使用TOMCAT的工程进行修改)
同样用文本编辑器打开web.xml,然后加入如下语句(在<web-app>与</web-app>之间)
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/mywebdb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
五、编写测试jsp page
在C:\Tomcat 5.5\webapps\ROOT下编写一个test.jsp,代码如下:
<%@ page import="java.io.*,java.util.*,java.sql.*,javax.sql.*,javax.naming.*"%>
<%@ page contentType="text/html;charset=GB2312"%>
<html>
<head><title>DataSourse Connection Test</title></head>
<body>
<%
try{
Statement stmt;
ResultSet rs;
javax.naming.Context ctx=new javax.naming.InitialContext();
javax.sql.DataSource ds= (javax.sql.DataSource)ctx.lookup ("java:comp/env/jdbc/mywebdb"); //红色 字为连接池名,其他固定。
java.sql.Connection con=ds.getConnection();
stmt=con.createStatement();
rs=stmt.executeQuery("select * from tested");
while(rs.next()){
out.print(rs.getInt(1));
out.print(rs.getString(2));
}
rs.close();
stmt.close();
con.close();
}catch(Exception e){
out.print(e.getMessage());
}
%>
</body>
</html>
六、开始测试
运行tomcat,打开IE在地址栏中输入:http://localhost:8080/test.jsp.
显示结果是:
1Holmes
2conan