TOMCAT 4.01可以配置jndi数据源,用mm的mysql驱动就可以实现连接pool。
不用自己写。改一下它的配置的xml文件。你可以参考一下我这个。
在conf/server.xml里加
<Context path="/my" docBase="my" debug="0"
          reloadable="true">
          <Logger className="org.apache.catalina.logger.FileLogger"
                    prefix="localhost_examples_log." suffix=".txt"
          timestamp="true"/>
           <!-- mysql DataSource -->
          <Resource name="jdbc/MysqlDB" auth="Container" type="javax.sql.DataSource"/>
          <ResourceParams name="jdbc/MysqlDB">
           <parameter><name>user</name><value>root</value></parameter>
           <parameter><name>password</name><value></value></parameter>
           <parameter>
             <name>driverClassName</name>
             <value>org.gjt.mm.mysql.Driver</value>
            </parameter>
             <parameter>
            <name>driverName</name>
             <value>jdbc:mysql://localhost/fileadmin</value>
             </parameter>
          </ResourceParams>
          </Context>在webapps/my/WEB-INF/web.xml里加上(my为刚刚建立的虚拟目录)
<resource-ref> 
  <res-ref-name> 
   jdbc/MysqlDB
  </res-ref-name> 
  <res-type> 
   javax.sql.DataSource 
  </res-type> 
  <res-auth> 
   Container 
  </res-auth> 
  </resource-ref> 最后把MYSQL驱动包放在common/lib就可以了通过jndi配制的datasourse,如果用一个支持jdbc2的驱动程序可以自动实现连接pool,不用自己写。MYSQL的mm驱动可以做到。其他的数据库驱动同理可以作为参考。

解决方案 »

  1.   

    感谢xue_sharp(小雪) 的答复,但这个配置好像是针对DataSource,如果我想引用这个DataSource,那是不是得这样写
    context ctx=new InitialContext();
    Datasource ds=(DataSource)ctx.lookup("jdbc/MysqlDB");
    Connection con=ds.getConnection();
    还是应该这样写
    context ctx=new InitialContext();
    ConnectionPoolDatasource ds=(ConnectionPoolDataSource)ctx.lookup("jdbc/MysqlDB");
    Connection con=ds.getConnection();
    此外我用第一种方式,为何总是提示找不到表的错误 
      

  2.   

    那请问用SQL SERVER的JDBC驱动,在TOMCAT里能否实现连接池?
      

  3.   

    我只是用sqlserver 的 jdbc驱动实现了DataSource,我不肯定那算不算实现连接池。