学导网 >> it000 >> MySQL
tomcat5中配置mysql数据源
www.xuedao.net  2007-7-4 15:08:00 网络

  前几天为了在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,找到</host>结束标志,然后在之前加上如下语句:
 
<Context path="/myapps" docBase="d:\myweb\myapps" debug="0"
reloadable="true" >
 

  <Resource name="jdbc/DBConnection"
               auth="Container"
               type="javax.sql.DataSource" />
 
  <ResourceParams name="jdbc/DBConnection">
    <parameter>
      <name>factory</name>
      <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>
 
    <!-- Maximum number of dB connections in pool. Make sure you
         configure your mysqld max_connections large enough to handle
         all of your db connections. Set to 0 for no limit.
         -->
    <parameter>
      <name>maxActive</name>
      <value>10</value>
    </parameter>
 
    <!-- Maximum number of idle dB connections to retain in pool.
         Set to 0 for no limit.
         -->
    <parameter>
      <name>maxIdle</name>
      <value>3</value>
    </parameter>
 
    <!-- Maximum time to wait for a dB connection to become available
         in ms, in this example 10 seconds. An Exception is thrown if
         this timeout is exceeded.  Set to -1 to wait indefinitely.
        Maximum time to wait for a dB connection to become available
         in ms, in this example 10 seconds. An Exception is thrown if
         this timeout is exceeded.  Set to -1 to wait indefinitely.
         -->
    <parameter>
      <name>maxWait</name>
      <value>10000</value>
    </parameter>
 
    <!-- MySQL dB username and password for dB connections  -->
    <parameter>
     <name>username</name>
     <value>root</value>
    </parameter>
    <parameter>
     <name>password</name>
     <value>1234</value>
    </parameter>
 
    <!-- Class name for mm.mysql JDBC driver -->
    <parameter>
       <name>driverClassName</name>
       <value>com.mysql.jdbc.Driver</value>
    </parameter>
 
    <!-- The JDBC connection url for connecting to your MySQL dB.
         The autoReconnect=true argument to the url makes sure that the
         mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
         connection.  mysqld by default closes idle connections after 8 hours.
         -->
    <parameter>
      <name>url</name>
      <value>jdbc:mysql://localhost:3306/forumdb?autoReconnect=true</value>
    </parameter>
  </ResourceParams>
 
</Context>
再次提醒:一定要放在</host>之前!
 
四、配置web.xml
 
web.xml位于d:\myweb\myapps\WEB-INF下,也即是你的WEB里的web.xml。
 
同样用文本编辑器打开web.xml,然后加入如下语句(在<web-app>与</web-app>之间)
 
<resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/DBConnection</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>


五、编写测试jsp page。
 
在d:\myweb\myapps\下编写一个dbtest.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{
  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());
 }
 
%>
 

</body>
</html>
 
六、开始测试
 

运行tomcat.bat,打开IE在地址栏中输入:http://localhost:8080/myapps/dbtest.jsp
如果能够看到看到如下数据,恭喜你,成功了,若没有,说明还是有问题,只好再来了(通常都是最简单的拼错字符的问题)

 

评论】 【关闭
相关新闻
Google提供广告