`

C3P0连接池在tomcat中的详细配置

 
阅读更多
一.在tomcat_home\common\lib下放入jdbc的驱动程序,额外说一下,如果是使用sql server的话,有至少两个驱动可以选择,一个是微软提供的,另一个是 jtds,比微软的要好很多,推荐使用
二.配置文件,tomcat 不同的版本配置文件略有不同,下面以tomcat5.5.*为例,如果配置不正确会出现javax.naming.NameNotFoundException: Name is not bound in this Context 错误


方式一、全局数据库连接池(Mysql数据库)
1、通过管理界面配置连接池,或者直接在tomcat\conf\server.xml的GlobalNamingResources中增加
<Resource auth="Container" description="DB Connection" driverClass="com.mysql.jdbc.Driver" maxPoolSize="10" minPoolSize="2" acquireIncrement="2" name="jdbc/connPool" user="root" password="111111" factory="org.apache.naming.factory.BeanFactory" type="com.mchange.v2.c3p0.ComboPooledDataSource" jdbcUrl="jdbc:mysql://localhost:3306/haixu?autoReconnect=true" />


2、在tomcat\webapps\myapp\META-INF\context.xml的Context中增加:

<ResourceLink name="jdbc/connPool" global="jdbc/connPool" type="javax.sql.DataSource"/>
这样就可以了。


方式二、全局数据库连接池
1、同上
2、在tomcat\conf\context.xml的Context中增加:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>


方式三、局部数据库连接池(mssql数据库)
只需在tomcat\webapps\myapps\META-INF\context.xml的Context中增加:
<Resource name="jdbc/mydb" type="javax.sql.DataSource" password="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validati username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxActive="4"/>


参数说明:
driveClassName:JDBC驱动类的完整的名称;
maxActive:同时能够从连接池中被分配的可用实例的最大数;
maxIdle:可以同时闲置在连接池中的连接的最大数;
maxWait:最大超时时间,以毫秒计;
password:用户密码;
url:到JDBC的URL连接;
user:用户名称;
validationQuery:用来查询池中空闲的连接。
以上三种方式在tomcat 5.5.4下都可以。另外,sql server的jdbc driver是从微软网站上下载的sql server jdbc (sp3)。

---------------------------------------------------------------------------

总结一下我的配置步骤:

(1)有三个文件需要配置

1>\Tomcat 5.5\conf\server.xml

2>\Tomcat 5.5\conf\context.xml

3>项目中\WebRoot\WEB-INF\web.xml

(2)配置的代码

1> 在tomcat\conf\server.xml的GlobalNamingResources中增加:
<Resource auth="Container"
    description="DB Connection"
    driverClass="com.mysql.jdbc.Driver"
    maxPoolSize="10"
    minPoolSize="2"
    acquireIncrement="2"
    name="jdbc/connPool"
    user="用户名"
    password="密码"
    factory="org.apache.naming.factory.BeanFactory"
    type="com.mchange.v2.c3p0.ComboPooledDataSource"
    jdbcUrl="jdbc:mysql://localhost:3306/数据库名?autoReconnect=true" />

2> 在tomcat\conf\context.xml的Context中增加: 

<ResourceLink name="jdbc/connPool" global="jdbc/connPool" type="javax.sql.DataSource"/>





3> 在web.xml中增加:

  <resource-ref>
     <description>DB Connection</description>
     <res-ref-name>jdbc/connPool</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
  </resource-ref>

(3)jsp测试页面

<%@page language="java" import="java.util.*,java.sql.*,javax.naming.*,javax.sql.*" pageEncoding="GB2312"%>
<%@page import="com.mchange.v2.c3p0.*"%>
<%@page import="java.sql.Connection"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>   
    <title>My JSP 'mysqlTest.jsp' starting page</title>
  </head>
 
  <body>
    Mysql数据库测试<br><br><br>
    <%
    Connection conn=null;
     try
{
      InitialContext ctx = new InitialContext();
      DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/connPool");
      conn=ds.getConnection();
}
catch(NamingException ex)
{
   ex.printStackTrace();
}

    String sql="select * from user";
PreparedStatement ps=conn.prepareStatement(sql);
ResultSet rs=ps.executeQuery();
     while(rs.next())
{
  %>
  字段1:<%=rs.getString(1)%> 字段2:<%=rs.getString(2)%><br>
  <%
}
    if(rs!=null)
    {
        rs.close();
        rs=null;
    }
    if(ps!=null)
    {
        ps.close();
        ps=null;
    }
    if(conn!=null)
    {
        conn.close();
        conn=null;
    }
    %>
  </body>
</html>
分享到:
评论

相关推荐

    Tomcat统一配置C3P0连接池

    在【标题】"Tomcat统一配置C3P0连接池"中,我们主要探讨的是如何在Apache Tomcat服务器中集中管理数据库连接池,特别是使用C3P0这个开源的JDBC连接池实现。C3P0是一个JDBC连接池,它实现了数据源和JNDI绑定,提供了...

    C3P0 在tomcat中如何配置

    本文将详细介绍如何在Tomcat环境中配置并使用C3P0连接池。 #### 二、C3P0简介 C3P0(Concurrent DataSources Proxy Pool)是一个开源的JDBC连接池实现,旨在为JDBC提供额外的连接池功能,并且与大多数主流的JDBC...

    tomcat6+jndi+c3p0配置数据库连接池

    本示例主要讲解如何在Tomcat6中结合JNDI(Java Naming and Directory Interface)和C3P0库来配置数据库连接池,这对于初学者理解Web应用服务器与数据库的交互方式具有很大帮助。 首先,C3P0是一个开源的JDBC连接池...

    MySQL数据库服务器下C3P0连接池的配置.pdf

    本文主要讲述了在MySQL数据库服务器下使用C3P0连接池的配置,解决了连接池的问题,并提供了详细的解决方案。 一、概述 在开发项目时,笔者遇到了一些问题,即Tomcat服务器与MySQL数据库之间使用第三方C3PO连接池,...

    c3p0数据库连接池

    - 相比于Tomcat JDBC Connection Pool,c3p0更适合小型项目,大型项目可能会倾向于选择更高效、更活跃维护的连接池。 7. **常见问题与解决方案** - 如果出现“Too many connections”错误,可能是因为`maxPool...

    c3p0连接池

    - `tomcat5_5中c3p0配置(JNDI、hibernate配置)_快乐因你.htm`和`tomcat5_5中c3p0配置(JNDI、hibernate配置)_快乐因你.files`则详细解释了如何在Tomcat 5.5版本中配置c3p0,涵盖了JNDI和Hibernate的配置方法。...

    比c3p0还快的bonecp连接池配置方法讲解

    本文将详细介绍如何配置 BoneCP 连接池,以及对比C3P0的配置方法。 1. **BoneCP的基本概念与优势** - BoneCP 是一个开源的JDBC连接池实现,它通过高效的连接管理和复用来提高数据库操作的效率。 - 与C3P0相比,...

    tomcat连接池配置

    二、Tomcat内置连接池C3P0和Apache DBCP Tomcat内置了两个常用的数据库连接池实现:C3P0和Apache DBCP。C3P0是一款功能强大的连接池,支持多数据源,具有自动测试连接、自动回收等功能。Apache DBCP是Apache的一个...

    c3p0 还有其他连接池

    3. **连接池扩展**:当连接池中的连接被全部占用时,c3p0能够根据预设策略自动增加新的连接。 4. **性能优化**:c3p0支持连接池的配置参数调整,如最大连接数、最小连接数、空闲连接测试频率等,以适应不同应用的...

    c3p0连接池jar包(全)

    C3P0连接池是一个广泛使用的开源数据库连接池组件,其设计目的是为了提高数据库访问的效率和性能。在Java应用程序中,特别是在Web应用或者大型系统中,频繁地创建和关闭数据库连接会导致大量的系统资源浪费。C3P0...

    C3p0配置连接池及jar

    总结,C3p0是一个强大的数据库连接池实现,它的配置主要包括添加jar依赖、设置数据源参数以及在代码中使用数据源。通过合理配置,C3p0能够有效地管理数据库连接,提高系统效率,并降低资源消耗。在实际开发中,我们...

    tomcat数据源连接池配置

    本篇文章将详细介绍如何在Tomcat中配置数据源连接池,以及涉及的相关jar包文件。 首先,理解数据源(DataSource)的概念。数据源是一个接口,用于管理数据库连接,它提供了一种在多个线程或应用之间共享数据库连接...

    c3p0连接池的jar包下载

    下面我们将详细介绍C3P0连接池的原理、配置以及使用方法。 一、C3P0概述 C3P0由Mchange公司开发,其全称为Composited Connection Pool 0.9.x。它的主要功能是提供数据库连接的池化管理,通过缓存和重用已建立的...

    hibernate连接池之tomcat6的配置

    标题“hibernate连接池之tomcat6的配置”涉及到的是如何在Tomcat6服务器中配置Hibernate连接池,以便高效管理数据库连接。这通常是为了优化应用程序的性能和资源利用。以下将详细介绍相关知识点: 1. **Hibernate**...

    基于DBCP/c3p0/Tomcat的数据库连接池的demo

    在提供的压缩包文件中,`testdatasource`可能包含了使用DBCP或c3p0实现的数据库连接池示例代码,而`testTomcatDataSource`则可能是关于如何在Tomcat中配置和使用数据源的示例。通过分析这些代码,可以更深入地了解...

    TOMCAT中数据库连接池的几种配置方法_TOMCAT中数据库连接池的几种配置方法_

    本文将详细讲解在Tomcat中配置数据库连接池的几种常见方法,帮助开发者实现高效、稳定的数据库访问。 一、Apache Commons DBCP Apache Commons DBCP是Apache组织提供的一款开源数据库连接池组件,它基于Jakarta-...

    c3p0数据连接池

    ### c3p0 数据连接池知识点详解 #### 定义 ...总结而言,c3p0 是一个非常强大且功能全面的 JDBC 连接池实现,不仅提供了快速简单的配置方式,还支持复杂的高级配置选项,能够满足各种复杂的应用场景需求。

    c3p0连接池,ojdbc14工具包jar

    总的来说,c3p0和ojdbc14是Java Web应用中常用的数据库连接池和驱动,它们的合理配置和使用能够显著提高数据库操作的效率,同时降低资源消耗。通过深入理解这两个组件的工作原理和配置方法,开发者可以更好地优化...

    c3p0连接池使用方法.rar_连接池实现

    **c3p0连接池使用方法** c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。使用c3p0连接池可以有效地管理和优化数据库连接,提高系统的性能和稳定性。以下是关于c3p0连接池...

Global site tag (gtag.js) - Google Analytics