开发者社区> 科技小先锋> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介:
+关注继续查看
本文利用Tomcat5配置Mysql JDBC数据库连接池,并给出详细的测试用例。
@author:ZJ 07-11-23
1配置说明
Tomcat5.0 
Eclipse3.3+MyEclipse6.0
Mysql5
mysql-connector-java-3.1.12
2.新建web工程
[1]New Project-Web Project-取名为ConnectorPool

[2]mysql-connector-java-3.1.12加到%TOMCAT_HOME%/common/lib下。
 
[3]部署测试该工程。
在地址栏输入[url]http://127.0.0.1:8080/ConnectorPool/[/url],将得到默认的index.jsp。说明部署成功。
3.配置Tomcat Admin
启动Tomcat,访问[url]http://127.0.0.1:8080/admin/[/url],输入用户名和密码,即可进入管理界面。用户名和密码可在%Tomcat _HOME%/conf/ tomcat-users.xml中找到。
左边的菜单栏时有Tomcat Server,Resources,User Definition。注意,不要在Resource中配置数据源,这是配置全局的数据源。
进入Tomcat Server->Service(Catalina)->Host(loalhost),就能找到刚才部署的工程->Context(/ConnecterPool)

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

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 Nameroot //数据库连接时的用户名;
Password**** //数据库连接时的密码;
⑥以下默认配置。

  点击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测试结果

7.查询配置文件
编译后,%TOMCAT_HOME%/conf/Catalina/localhost/目录下有个ConnectorPool.xml,其内容为:
 <?xml version='1.0' encoding='utf-8'?>
<Context docBase="ConnectorPool" path="/ConnectorPool"
 workDir="work\Catalina\localhost\ConnectorPool">
  <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>
参数说明:
driveClassNameJDBC驱动类的完整的名称;
maxActive:同时能够从连接池中被分配的可用实例的最大数;
maxIdle:可以同时闲置在连接池中的连接的最大数;
maxWait:最大超时时间,以毫秒计;
password:用户密码;
url:到JDBCURL连接;
user:用户名称;
validationQuery:用来查询池中空闲的连接。


本文转自zhangjunhd51CTO博客,原文链接:http://blog.51cto.com/zhangjunhd/51938,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
tomcat配置访问项目时不需要添加项目名称
tomcat配置访问项目时不需要添加项目名称
0 0
eclipse配置Tomcat服务器开发Jsp 超详细
eclipse配置Tomcat服务器开发Jsp 超详细
0 0
最新Tomcat安装及配置教程+JavaWeb项目部署
最新Tomcat安装及配置教程+JavaWeb项目部署
0 0
idea中配置tomcat时找不到war/war exploded
idea中配置tomcat时找不到war/war exploded
0 0
IDEA2022配置Tomcat服务器教程(超细致版)
IDEA2022配置Tomcat服务器教程(超细致版)
0 0
【JavaWeb】Tomcat服务器的配置与IDEA整合Tomcat使用教程(下)
文章目录 1 正式步入JavaWeb 1.1 JavaWeb说明 1.2 Web资源与常见的Web服务器 2 Tomcat安装与配置 2.1 Tomcat服务器简介与版本 2.2 Tomcat服务器的安装 2.2.1 Windows下Tomcat的安装与启动 2.2.2 Linux下Tomcat安装与启动 2.3 Tomcat启动测试 2.4 如何关闭Tomcat 2.5 Tomcat目录结构 3 在Tomcat服务器上部署Web工程 3.1 两种部署Web工程的方式 3.2 手托html与浏览器地址访问html的区别 4 IDEA整合Tomcat服务器 5 动态的Web工程 5.1 静态和动
0 0
【JavaWeb】Tomcat服务器的配置与IDEA整合Tomcat使用教程(上)
文章目录 1 正式步入JavaWeb 1.1 JavaWeb说明 1.2 Web资源与常见的Web服务器 2 Tomcat安装与配置 2.1 Tomcat服务器简介与版本 2.2 Tomcat服务器的安装 2.2.1 Windows下Tomcat的安装与启动 2.2.2 Linux下Tomcat安装与启动 2.3 Tomcat启动测试 2.4 如何关闭Tomcat 2.5 Tomcat目录结构 3 在Tomcat服务器上部署Web工程 3.1 两种部署Web工程的方式 3.2 手托html与浏览器地址访问html的区别 4 IDEA整合Tomcat服务器 5 动态的Web工程 5.1 静态和动
0 0
idea配置tomcat必坑指南
idea配置tomcat必坑指南
0 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载