tomcat5中配置mysql数据源


前几天为了在 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

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus