天天看點

tomcat和mysql配置的一個細節

  配置MySQL的JDBC驅動,别忘了将mysql-connector-java-3.1.13-bin.jar放到%CATALINA_HOME%/common/lib目錄下。

下面是孫鑫web開發詳解的一個例子

JDK+Tomcat+Servlet連接配接Mysql資料庫

一、準備軟體

Tomcat            5.0.30 JDK               j2sdk1.4.2_10 JDBC              mysql-connector-java-3.1.13-bin.jar

Mysql             5.0 SQLyog            5.02

二、配置環境

下載下傳好軟體并安裝好,預設路徑如下

JDK:        C:/j2sdk1.4.2_10 Tomcat:     C:/Program Files/Apache Software Foundation/Tomcat5.0 Mysql:      C:/Program Files/MySQL JDBC:       将下載下傳下來的JDBC驅動解壓縮,我放在了D:/根目錄。

開始進行環境變置配置:右鍵單擊“我的電腦”選擇屬性,進階——環境變量,在系統變量下,選“建立”,具體配置如下:

變量名                     變量值

CATALINA_HOME      C:/Program Files/Apache Software Foundation/Tomcat5.0 classpath           .;%JAVA_HOME%/lib/tools.jar;                      %JAVA_HOME%/jre/lib/rt.jar;

                    %CATALINA_HOME%/common/lib/servlet-api.jar;

                    %JAVA_HOME%/lib/mysql-connector-java-3.1.13-bin-g.jar;

                    D:/mysql-connector-java-3.1.13-bin.jar

JAVA_HOME           C:/j2sdk1.4.2_10

注意:       

1/在classpath設定時,.;是不能省略的,它代表了目前路徑。

2/将下載下傳下來的JDBC驅動解壓縮後,可以看到mysql-connector-java-3.1.13-bin.jar檔案及相關的檔案夾,打開其中的debug檔案夾,可以找到mysql-connector-java-3.1.13-bin-g.jar檔案。

3/在classpath中設定%CATALINA_HOME%/common/lib/servlet-api.jar;是為了使Servlet可用。

三、用Servlet建立一個bookstore資料庫,并插入資料。若運作成功列印“success!”否則抛出異常列印“加載資料庫失敗”。

1、在C:/Program Files/Apache Software Foundation/Tomcat 5.0/webapps下建立檔案夾test,在test檔案夾下建立WEB-INF檔案夾,在WEB-INF檔案夾下建立classes檔案夾。 2、建立CreateDBServlet.java檔案,内容如下:

import javax.servlet.*;

import java.io.*;

import javax.servlet.http.*;

import java.sql.*;

public class CreateDBServlet extends HttpServlet

{

    private String url;

    private String user;

    private String password;

    public void init() throws ServletException

    {

        String driverClass=getInitParameter("driverClass");

        url=getInitParameter("url");

        user=getInitParameter("user");

        password=getInitParameter("password");

        try

        {

            Class.forName(driverClass);

        }

        catch(ClassNotFoundException ce)

        {

            throw new UnavailableException("加載資料庫驅動失敗!");

        }

    }

    public void doGet(HttpServletRequest req, HttpServletResponse resp)

               throws ServletException,IOException

    {

        Connection conn=null;

        Statement stmt=null;

        try

        {

            conn=DriverManager.getConnection(url,user,password);

            stmt=conn.createStatement();

            stmt.executeUpdate("create database bookstore");

            stmt.executeUpdate("use bookstore");

            stmt.executeUpdate("create table bookinfo(id INT not null primary key,title VARCHAR(50) not null,author VARCHAR(50) not null,bookconcern VARCHAR(100) not null,publish_date DATE not null,price FLOAT(4,2) not null,amount SMALLINT,remark VARCHAR(200)) ENGINE=InnoDB");

            stmt.addBatch("insert into bookinfo values(1,'Java從入門到精通','張三','張三出版社','2004-6-1',34.00,35,null)");

            stmt.addBatch("insert into bookinfo values(2,'JSP深入程式設計','李四','李四出版社','2004-10-1',56.00,20,null)");

            stmt.addBatch("insert into bookinfo values(3,'J2EE進階程式設計','王五','王五出版社','2005-3-1',78.00,10,null)");

            stmt.executeBatch();

            PrintWriter out=resp.getWriter();

            out.println("success!");

            out.close();

        }

        catch(SQLException se)

        {

            se.printStackTrace();

        }

        finally

        {

            if(stmt!=null)

            {

                try

                {

                    stmt.close();

                }

                catch(SQLException se)

                {

                    se.printStackTrace();

                }

                stmt=null;

            }

            if(conn!=null)

            {

                try

                {

                    conn.close();

                }

                catch(SQLException se)

                {

                    se.printStackTrace();

                }

                conn=null;

            }

        }

    }

}

2、編譯CreateDBServlet.java生成CreateDBServlet.class檔案,将其剪切到classes檔案夾中。

3、部署Servlet(如果不在webapps檔案夾中,則必須設定此步,假設在D:/test)

在%CATALINA_HOME%/conf/Catalina/localhost目錄下,配置運作目錄,建立test.xml檔案

test.xml

<Context path="/test" docBase="D:/test" reloadable="true"/> 4、按Web應用程式的目錄層次結構,在剛剛建立的test目錄下中的WEB-INF目錄中建立web.xml檔案。

web.xml

<?xml version="1.0" encoding="gb2312"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

    version="2.4">

 <servlet>

        <servlet-name>CreateDBServlet</servlet-name>

        <servlet-class>CreateDBServlet</servlet-class>

               <init-param>

                                           <param-name>driverClass</param-name>

                                           <param-value>com.mysql.jdbc.Driver</param-value>

                            </init-param>

                            <init-param>

                                    <param-name>url</param-name>

                                    <param-value>jdbc:mysql://localhost:3306/mysql</param-value>

                            </init-param>

                            <init-param>

                                    <param-name>user</param-name>

                                    <param-value>root</param-value>

                            </init-param>

                            <init-param>

                                    <param-name>password</param-name>

                                    <param-value>123456</param-value>

                            </init-param>

    </servlet>

    <servlet-mapping>

        <servlet-name>CreateDBServlet</servlet-name>

        <url-pattern>/createdb</url-pattern>

    </servlet-mapping>

</web-app>

5、配置MySQL的JDBC驅動,将mysql-connector-java-3.1.13-bin.jar放到%CATALINA_HOME%/common/lib目錄下。

6、啟動TOMCAT,啟動mysql,輸入http://localhost:8080/test/createdb