日期:2014-05-16  浏览次数:20426 次

Tomcat 的数据库连接池设置与应用(Mysql篇)
上次我发了一篇文章是讲的Tomcat 的数据库连接池设置与应用(Mysql篇)
其中只讲了如何设置,但是没有一个具体的例子这次我就以一个具体的实例演示一下:
我用的是配置:Tomcat5.5+JEE(jsdk1.5)+WINXP

还是简单的说一说文件配置:
1:修改%tomcat%/conf/server.xml在<GlobalNamingResources>后加如下内容.
      <Resource
      name="jdbc/DBPool" //数据源名称
      type="javax.sql.DataSource"
      password="xxxxxxxx"
      driverClassName="com.mysql.jdbc.Driver"
      maxIdle="2"
      maxWait="5000"
      username="root"
      url="jdbc:mysql://127.0.0.1:3306/hptest"
      maxActive="4"/>
2.修改%tomcat%/conf/context.xm;在<Context>后加
   <ResourceLink
   name="jdbc/DBPool"
   type="javax.sql.DataSource"
   global="jdbc/DBPool"/>
3.修改%tomcat%/conf/web.xml
<resource-ref>
    <description>MySQL DB Connection Pool</description>
    <res-ref-name>jdbc/DBPool</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
  这样配置就算差不多了.如果具体的还不懂可见上次发的文章.
4.写一个程序测试.(写一个WEB程序)
我的是Myeclipse 写的程序
1:写一个连接类:   
DBPool.java
package com.test;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class DBPool {
    private static DataSource pool;
    static {
         Context env = null;
          try {
              env = (Context) new InitialContext().lookup("java:comp/env");
              pool = (DataSource)env.lookup("jdbc/DBPool");
              if(pool==null)
                  System.err.println("'DBPool' is an unknown DataSource");
               } catch(NamingException ne) {
                  ne.printStackTrace();
          }
      }
    public static DataSource getPool() {
        return pool;
    }
  
}
    2:写一个Servlet: 
  其中有是用来连接数据库和显示查询结果.
Mytest.java
package com.test;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Mytest extends HttpServlet {

    /**
     * Constructor of the object.
     */
    public Mytest() {
        super();
    }

    /**
     * Destruction of the se