前几天为了在 Tomcat5 中配置 MySql 的数据源,在网上到处搜刮资料,最终仍未能配置成功。迫不得已,花了些银子买本书,看完后感觉收获很大。 再来配置数据源简直就是小菜一碟了,现将配置过程详述如下,一来作为版书的资料,二来希望为大家提供些帮助。
一、配置环境变量:
softe version:tomcat5.0.12/mysql4.1.7/mysql_driver---mysql-connector-java-3.1.4-beta-bin.jar
前几天为了在 Tomcat5 中配置 MySql 的数据源,在网上到处搜刮资料,最终仍未能配置成功。迫不得已,花了些银子买本书,看完后感觉收获很大。再来配置数据源简直就是小菜一碟了,现将配置过程详述如下,一来作为版书的资料,二来希望为大家提供些帮助。
一、配置环境变量:
softe version:tomcat5.0.12/mysql4.1.7/mysql_driver---mysql-connector-java-3.1.4-beta-bin.jar
mysql 驱动程序可从 www.mysql.com 官方网站下载
路径: tomcat5 在 d:\myweb\tomcat5 ; mysql 在 C:\Program Files\MySQL\MySQL Server 4.1
Path( 在原来的基础上加上): d:\myweb\tomcat5\bin;d:\myweb\jdk1.4;d:\myweb\jdk1.4\bin;
d:\myweb\tomcat5\common\lib\servlet-api.jar;C:\Program Files\MySQL\MySQL Server 4.1\bin
CLASSPATH:d:\myweb\tomcat5\common\lib\servlet-api.jar;d:\myweb\tomcat5\common\lib\jsp-api.jar
JAVA_HOME:d:\myweb\jdk1.4
CATALINA_HOME:d:\myweb\tomcat5
二、建立测试数据库
在 mysql 中建立一个 forumdb 数据库,同时创建一个表 member 如下:
create database forumdb;
create table member
(
id int,
name varchar(6)
);
然后插入两条测试数据如下:
insert into member values(1,"zhang");
insert into member values(2,"wang");
至此,数据库准备完毕。
三、配置 server.xml
注:我的 web 在 d:\myweb\myapps
首先要将 mysql 的驱动程序放到 d:\myweb\tomcat5\common\lib 下面,一定要放 ".jar" 的文件,如是 ".zip" 的文件直接改为 .jar 即可。
用文本编辑器打开 D:\tomcat5\conf\server.xml ,找到 结束标志,然后在之前加上如下语句:
1<context debug="0" docbase="d:\myweb\myapps" path="/myapps" reloadable="true">
2<resource auth="Container" name="jdbc/DBConnection" type="javax.sql.DataSource"></resource>
3<resourceparams name="jdbc/DBConnection">
4<parameter>
5<name>factory</name>
6<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
7</parameter>
8<!-- Maximum number of dB connections in pool. Make sure you
9configure your mysqld max_connections large enough to handle
10all of your db connections. Set to 0 for no limit.
11\-->
12<parameter>
13<name>maxActive</name>
14<value>10</value>
15</parameter>
16<!-- Maximum number of idle dB connections to retain in pool.
17Set to 0 for no limit.
18\-->
19<parameter>
20<name>maxIdle</name>
21<value>3</value>
22</parameter>
23<!-- Maximum time to wait for a dB connection to become available
24in ms, in this example 10 seconds. An Exception is thrown if
25this timeout is exceeded. Set to -1 to wait indefinitely.
26Maximum time to wait for a dB connection to become available
27in ms, in this example 10 seconds. An Exception is thrown if
28this timeout is exceeded. Set to -1 to wait indefinitely.
29\-->
30<parameter>
31<name>maxWait</name>
32<value>10000</value>
33</parameter>
34<!-- MySQL dB username and password for dB connections -->
35<parameter>
36<name>username</name>
37<value>root</value>
38</parameter>
39<parameter>
40<name>password</name>
41<value>1234</value>
42</parameter>
43<!-- Class name for mm.mysql JDBC driver -->
44<parameter>
45<name>driverClassName</name>
46<value>com.mysql.jdbc.Driver</value>
47</parameter>
48<!-- The JDBC connection url for connecting to your MySQL dB.
49The autoReconnect=true argument to the url makes sure that the
50mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
51connection. mysqld by default closes idle connections after 8 hours.
52\-->
53<parameter>
54<name>url</name>
55<value>jdbc:mysql://localhost:3306/forumdb?autoReconnect=true</value>
56</parameter>
57</resourceparams>
58</context>
再次提醒:一定要放在 之前!
四、配置 web.xml
web.xml 位于 d:\myweb\myapps\WEB-INF 下,也即是你的 WEB 里的 web.xml 。
同样用文本编辑器打开 web.xml ,然后加入如下语句(在
1<web-app> 与 </web-app>
之间)
1<resource-ref>
2<description>DB Connection</description>
3<res-ref-name>jdbc/DBConnection</res-ref-name>
4<res-type>javax.sql.DataSource</res-type>
5<res-auth>Container</res-auth>
6</resource-ref>
五、编写测试 jsp page 。
在 d:\myweb\myapps\ 下编写一个 dbtest.jsp ,代码如下:
1@ page import="java.io.*,java.util.*,java.sql.*,javax.sql.*,javax.naming.*"
1@ page contentType="text/html;charset=GB2312"
1<html>
2<head><title>DataSourse Connection Test</title></head>
3<body>
try{
java.sql.Connection con;
Statement stmt;
ResultSet rs;
Context ctx = new InitialContext();
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/DBConnection");
con=ds.getConnection();
stmt=con.createStatement();
rs=stmt.executeQuery("select * from member");
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());
}
1
2
3</body>
4</html>
六、开始测试
运行 tomcat.bat, 打开 IE 在地址栏中输入: http://localhost:8080/myapps/dbtest.jsp
如果能够看到看到如下数据,恭喜你,成功了,若没有,说明还是有问题,只好再来了(通常都是最简单的拼错字符的问题)
1 zhang
2 wang