图解Tomcat5.0下配置数据库连接池

本文介绍如何在Tomcat服务器中配置数据库连接池,并通过Eclipse和MyEclipse进行项目搭建,实现对MySQL数据库的有效访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1.配置说明

  Tomcat5.0 

  Eclipse3.3+MyEclipse6.0

  Mysql5

  mysql-connector-java-3.1.12

  2.新建web工程

  [1]New Project-Web Project-取名为ConnectorPool

图解Tomcat5.0下配置数据库连接池

  [2]将mysql-connector-java-3.1.12加到%TOMCAT_HOME%/common/lib下。

  [3]部署测试该工程。

  在地址栏输入http://127.0.0.1:8080/ConnectorPool/,将得到默认的index.jsp。说明部署成功。

  3.配置Tomcat Admin

  启动Tomcat,访问http://127.0.0.1:8080/admin/,输入用户名和密码,即可进入管理界面。用户名和密码可在%Tomcat _HOME%/conf/ tomcat-users.xml中找到。

  左边的菜单栏时有Tomcat Server,Resources,User Definition。注意,不要在Resource中配置数据源,这是配置全局的数据源。

  进入Tomcat Server->Service(Catalina)->Host(loalhost),就能找到刚才部署的工程->Context(/ConnecterPool)。

图解Tomcat5.0下配置数据库连接池

  再打开该子树,打开Resources->Data Sources,这里就是针对某个具体Context的DataSource了。

图解Tomcat5.0下配置数据库连接池

  Create New Data Source

  ①JNDI Name:jdbc/testpool //设置连接池的JNDI名;

  ②Data Source URL:jdbc:mysql://localhost:3306/conpool //数据库连接字串,forpool为数据库名;

     ③JDBC Driver Class: com.mysql.jdbc.Driver //数据库连接类 ;

  ④User Name:root //数据库连接时的用户名;

  ⑤Password:**** //数据库连接时的密码;

  ⑥以下默认配置。

图解Tomcat5.0下配置数据库连接池

  点击Save,配置完成(一般不需要重启tomcat)。

  4.配置项目中/WEB-INF/web.xml

<resource-ref>
  <description>DB Connection</description>
  <res-ref-name>jdbc/testpool</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
  <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

  5.配置完成,在java文件中使用数据库连接池

import javax.naming.InitialContext;
import javax.sql.DataSource;
InitialContext ctx=new InitialContext();
DataSource dataSource=(DataSource)ctx.lookup("java:comp/env/jdbc/testpool");
Connection con=dataSource.getConnection();

  通过这段代码。即可完成数据库连接。下面给出一个具体的测试例。

  6.测试

  6.1 测试用的数据库

  [1]数据库名conpool(对Data Source URL:jdbc:mysql://localhost:3306/conpool

  [2]表名test

  [3]字段名 id [varchar(12) ,notnull]

     [4]表中数据

  id

  001

  002

  003

  6.2测试用的代码test.jsp

<%@ page language="java" contentType="text/html; charset=GB18030"
  pageEncoding="GB18030"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page session="false"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
    <title>test for DB connection</title>
    <%
      out.print("beginning testing...");
      out.print("<br>");
      DataSource ds = null;
      try {
       InitialContext ctx = new InitialContext();
       ds = (DataSource) ctx.lookup("java:comp/env/jdbc/testpool");
       Connection conn = ds.getConnection();
       Statement stmt = conn.createStatement();
       // test是数据库已有的表,
       //这里的数据库是前文提及的Data Source URL配置里包含的数据库。
       String strSql = " select * from test";
       ResultSet rs = stmt.executeQuery(strSql);
       while (rs.next()) {
         out.print(rs.getString(1));
       }
       out.print("<br>");
       out.print("end testing.");
      } catch (Exception ex) {
       out.print("error:" + ex.getMessage());
       ex.printStackTrace();
      }
    %>
  </head>
  <body>
  </body>
</html>

  6.3测试结果

图解Tomcat5.0下配置数据库连接池

  7.查询配置文件

  编译后,%TOMCAT_HOME%/conf/Catalina/localhost/目录下有个ConnectorPool.xml,其内容为:

<?xml version='1.0' encoding='utf-8'?>
<Context docBase="ConnectorPool" path="/ConnectorPool"
workDir="workCatalinalocalhostConnectorPool">
 <Resource auth="Container" description="DB Connection" name="jdbc/testpool" type="javax.sql.DataSource"/>
 <ResourceParams name="jdbc/testpool">
  <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/conpool</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>

  参数说明:

  driveClassName:JDBC驱动类的完整的名称;

  maxActive:同时能够从连接池中被分配的可用实例的最大数;

  maxIdle:可以同时闲置在连接池中的连接的最大数;

  maxWait:最大超时时间,以毫秒计;

  password:用户密码;

  url:到JDBC的URL连接;

  user:用户名称;

  validationQuery:用来查询池中空闲的连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值