Tomcat5数据库连结池配置使用

本文详细介绍了如何在Tomcat服务器中配置MySQL数据库连接,包括server.xml文件中的资源定义及项目级别的pooltest.xml配置,展示了如何解决数据库连接问题并提供了一个简单的测试页面示例。
 
配置tomcat安装目录下conf/server.xml配置如下
<?xml version='1.0' encoding='utf-8'?>
<Server>
 <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
 <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
 <GlobalNamingResources>
    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
    <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
    <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>
 </GlobalNamingResources>
 <Context path="/DBTest" docBase="DBTest"
       debug="5" reloadable="true" crossContext="true">
 
 <Logger className="org.apache.catalina.logger.FileLogger"
            prefix="localhost_DBTest_log." suffix=".txt"
            timestamp="true"/>
<!- 数据源名称 à
 <Resource name="jdbc/TestDB"
              auth="Container"
              type="javax.sql.DataSource"/>
 <ResourceParams name="jdbc/TestDB">
   <parameter>
     <name>factory</name>
     <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
   </parameter> 
   <parameter>
     <name>maxActive</name>
     <value>100</value>
   </parameter>
 
 
   <parameter>
     <name>maxIdle</name>
     <value>30</value>
   </parameter>  
   <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>root</value>
   </parameter>  
   <!-- Class name for the official MySQL Connector/J driver -->
   <parameter>
      <name>driverClassName</name>
      <value>com.mysql.jdbc.Driver</value>
   </parameter>
   <parameter>
     <name>url</name>
     <value>jdbc:mysql://localhost:3306/test1?autoReconnect=true</value>
   </parameter>
 </ResourceParams>
</Context>
 <Service name="Catalina">
    <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="8000" redirectPort="8443" maxSpareThreads="75" maxThreads="150" minSpareThreads="25">
    </Connector>
    <Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443">
    </Connector>
    <Engine defaultHost="localhost" name="Catalina">
      <Host appBase="webapps" name="localhost">
        <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
      </Host>
      <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
    </Engine>
 </Service>
</Server>
黑体部分为需要我们配置的部分。
C:/ProgramFiles/ApacheSoftwareFoundation/Tomcat5.0/conf/Catalina/localhost/pooltest.xml设置
我的项目名称为pooltest
在部署项目pootltst后产生了该文件具体如下
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="C:/Program Files/Apache Software Foundation/Tomcat 5.0/webapps/pooltest" path="/pooltest" workDir="work/Catalina/localhost/pooltest">
   <Resource name="jdbc/TestDB" type="javax.sql.DataSource"/>
 <ResourceParams name="jdbc/TestDB">
    <parameter>
      <name>maxWait</name>
      <value>5000</value>
    </parameter>
    <parameter>
      <name>maxActive</name>
      <value>4</value>
    </parameter>
    <parameter>
      <name>password</name>
      <value>root</value>
    </parameter>
    <parameter>
      <name>url</name>
      <value>jdbc:mysql://localhost:3306/test1</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>
</Context>
开始的时候Resource name为Test 结果报错,org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '
' for connect URL 'null', cause: No suitable driver。修改后使其与server.xml
中的Resource nam一致,之后成功。
测试页面
<%@ page contentType = "text/html; charset=GBK" %>
<%@ page import = "java.sql.*,javax.sql.DataSource,javax.naming.*" %>
< html >
    < head >
        < title > test.jsp </ title >
    </ head >
    < body bgcolor = "#ffffff" >
        < h1 >
            test Tomcat
        </ h1 >
        <%
                try {
                Context initCtx = new InitialContext();
                DataSource ds = (DataSource) initCtx
                .lookup( "java:comp/env/jdbc/TestDB" );
                Connection conn = ds.getConnection();
                out.println( "data from database:<br>" );
                Statement stmt = conn.createStatement();
                ResultSet rs = stmt
                .executeQuery( "select * from user" );
                while (rs.next()) {
                    out.println(rs.getInt( "id" ));
                    out.println(rs.getString( "username" ));
                    out.println(rs.getString( "password" ));
                }
                rs.close();
                stmt.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        %>
    </ body >
</ html >
 
数据库Mysql
create database test1;
use test1;
create table user(
    id int(3) not null primary key,
    username varchar(20) ,
    password varchar(20)
);
insert into user(id,username,password) values(1,'admin','admin');
select * from user;
web..xml的配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 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">
 <resource-ref>
  <description>DB Connection</description>
  <res-ref-name>jdbc/TestDB</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>
</web-app>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值