配置Tomcat5.0的MySQL数据库连接池(二) (转载)

写一测试代码来测试一下刚才所做的一些吧,新建一个mysqlpool.jsp文件
内容如下:

<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page session="false" %>
<%@ page contentType="text/html;charset=gb2312" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
<%
   out.print("连接池测试开始<br>");

   DataSource ds = null;

   try{

   InitialContext ctx=new InitialContext();

   ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysqlpool");

   Connection conn = ds.getConnection();

   Statement stmt = conn.createStatement();

   String strSql = " select * from user";

   ResultSet rs = stmt.executeQuery(strSql);

   while(rs.next()){

      out.print(rs.getString(1)+" ");

      out.print(rs.getString(2)+" ");

      out.print(rs.getString(3)+" ");

      out.print(rs.getString(4)+" ");

      out.print(rs.getString(5)+" ");   
      
      out.print(rs.getString(6)+"<br>");                 

     }
     out.print("测试结束");
   }
   catch(Exception ex){
   
   out.print("出现例外,信息是:"+ex);
   
   ex.printStackTrace();
   }

%>
</head>
<body>
</body>
</html>

代码结束。

ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysqlpool");这条代码表示找名字叫jdbc/mysqlpool的DataSource。

在浏览器的地址栏输入: http://localhost://8080/yourweb/mysqlpool.jsp 出现了

连接池测试开始
localhost root 4a537f9733eb2bf4 Y Y Y
% root *13079F362E38088B725A0134245BEEA4F67AD89D Y Y Y
测试结束

恭喜你,你成功了!


注意:以上方法是在Tomcat5.028下调试成功的,我相信Tomcat5.X版本的通过这种方式也是可以达到一样有效果的。

还有一种方法也是可以配置数据库连接池的,我说明下
在%TOMCAT_HOME%\conf\Catalina\localhost\yourweb.xml的<Context></Context>之间加入以下代码就可以了,一步搞定

<Resource auth="Container" description="MySQL Connection Pool" name="jdbc/mysql" type="javax.sql.DataSource"/>
    <ResourceParams name="UserDatabase">
      <parameter>
        <name>factory</name>
        <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
      </parameter>
      <parameter>
        <name>pathname</name>
        <value>conf/tomcat-users.xml</value>
      </parameter>
    </ResourceParams>
    <ResourceParams name="jdbc/mysqlpool">
      <parameter>
        <name>maxWait</name>
        <value>5000</value>
      </parameter>
      <parameter>
        <name>maxActive</name>
        <value>4</value>
      </parameter>
      <parameter>
        <name>password</name>
        <value>yusaihua</value>
      </parameter>
      <parameter>
        <name>url</name>
        <value>jdbc:mysql://localhost/mysql?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=GB2312</value>
      </parameter>
      <parameter>
        <name>driverClassName</name>
        <value>com.mysql.jdbc.Driver</value>
      </parameter>
      <parameter>
        <name>maxIdle</name>
        <value>2</value>
      </parameter>
      <parameter>
        <name>username</name>
        <value>root</value>
      </parameter>
    </ResourceParams>

不需要通过 http://127.0.0.1:8080/admin 来添加数据库源,呵呵,比较简单吧!

  以上这些都是我花了二天才弄出来的,没有找人帮忙,当时真的要疯掉了,一个这么简单的东西,哎,网上的东西多,但是太多错误了,我给出我调试程序时出现过的错误,和我的解决方案,希望能帮助大家,祝大家工作愉快 :)

1)错误提示:
javax.naming.NameNotFoundException: Name mysqlpool is not bound in this Context 
->表示没有找到叫"mysqlpool"的数据源。

a)请检查连接池配置文件%TOMCAT_HOME\conf\server.xml中的<Resource name="jdbc/mysqlpool" type="javax.sql.DataSource"/>是不是和mysqlpool.jsp里面的ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysqlpool")一致

b)请检查你%TOMCAT_HOME%\conf\Catalina\localhost\yourweb.xml里面是否有
<ResourceLink name="jdbc/mysqlpool" global="jdbc/mysql" type="javax.sql.DataSourcer"/>代码。

2)错误提示:
org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver' 
->说明dbcp没有发现JDBC驱动'com.mysql.jdbc.Driver',请检查你的%TOMCAT_HOME%\common\lib\下面是否有MySQL的JDBC驱动程序,或者是不是下版本有问题,到http://dev.mysql.com/downloads/connector/j/3.1.html下载最新的版本。

posted on 2015-01-21 12:23  ziyi_ang  阅读(109)  评论(0编辑  收藏  举报

导航