标签: C3P0 连接池 配置
一.在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连接池"中,我们主要探讨的是如何在Apache Tomcat服务器中集中管理数据库连接池,特别是使用C3P0这个开源的JDBC连接池实现。C3P0是一个JDBC连接池,它实现了数据源和JNDI绑定,提供了...
本文将详细介绍如何在Tomcat环境中配置并使用C3P0连接池。 #### 二、C3P0简介 C3P0(Concurrent DataSources Proxy Pool)是一个开源的JDBC连接池实现,旨在为JDBC提供额外的连接池功能,并且与大多数主流的JDBC...
本示例主要讲解如何在Tomcat6中结合JNDI(Java Naming and Directory Interface)和C3P0库来配置数据库连接池,这对于初学者理解Web应用服务器与数据库的交互方式具有很大帮助。 首先,C3P0是一个开源的JDBC连接池...
本文主要讲述了在MySQL数据库服务器下使用C3P0连接池的配置,解决了连接池的问题,并提供了详细的解决方案。 一、概述 在开发项目时,笔者遇到了一些问题,即Tomcat服务器与MySQL数据库之间使用第三方C3PO连接池,...
- 相比于Tomcat JDBC Connection Pool,c3p0更适合小型项目,大型项目可能会倾向于选择更高效、更活跃维护的连接池。 7. **常见问题与解决方案** - 如果出现“Too many connections”错误,可能是因为`maxPool...
- `tomcat5_5中c3p0配置(JNDI、hibernate配置)_快乐因你.htm`和`tomcat5_5中c3p0配置(JNDI、hibernate配置)_快乐因你.files`则详细解释了如何在Tomcat 5.5版本中配置c3p0,涵盖了JNDI和Hibernate的配置方法。...
本文将详细介绍如何配置 BoneCP 连接池,以及对比C3P0的配置方法。 1. **BoneCP的基本概念与优势** - BoneCP 是一个开源的JDBC连接池实现,它通过高效的连接管理和复用来提高数据库操作的效率。 - 与C3P0相比,...
二、Tomcat内置连接池C3P0和Apache DBCP Tomcat内置了两个常用的数据库连接池实现:C3P0和Apache DBCP。C3P0是一款功能强大的连接池,支持多数据源,具有自动测试连接、自动回收等功能。Apache DBCP是Apache的一个...
3. **连接池扩展**:当连接池中的连接被全部占用时,c3p0能够根据预设策略自动增加新的连接。 4. **性能优化**:c3p0支持连接池的配置参数调整,如最大连接数、最小连接数、空闲连接测试频率等,以适应不同应用的...
总结,C3p0是一个强大的数据库连接池实现,它的配置主要包括添加jar依赖、设置数据源参数以及在代码中使用数据源。通过合理配置,C3p0能够有效地管理数据库连接,提高系统效率,并降低资源消耗。在实际开发中,我们...
C3P0连接池是一个广泛使用的开源数据库连接池组件,其设计目的是为了提高数据库访问的效率和性能。在Java应用程序中,特别是在Web应用或者大型系统中,频繁地创建和关闭数据库连接会导致大量的系统资源浪费。C3P0...
本篇文章将详细介绍如何在Tomcat中配置数据源连接池,以及涉及的相关jar包文件。 首先,理解数据源(DataSource)的概念。数据源是一个接口,用于管理数据库连接,它提供了一种在多个线程或应用之间共享数据库连接...
在提供的压缩包文件中,`testdatasource`可能包含了使用DBCP或c3p0实现的数据库连接池示例代码,而`testTomcatDataSource`则可能是关于如何在Tomcat中配置和使用数据源的示例。通过分析这些代码,可以更深入地了解...
下面我们将详细介绍C3P0连接池的原理、配置以及使用方法。 一、C3P0概述 C3P0由Mchange公司开发,其全称为Composited Connection Pool 0.9.x。它的主要功能是提供数据库连接的池化管理,通过缓存和重用已建立的...
标题“hibernate连接池之tomcat6的配置”涉及到的是如何在Tomcat6服务器中配置Hibernate连接池,以便高效管理数据库连接。这通常是为了优化应用程序的性能和资源利用。以下将详细介绍相关知识点: 1. **Hibernate**...
本文将详细讲解在Tomcat中配置数据库连接池的几种常见方法,帮助开发者实现高效、稳定的数据库访问。 一、Apache Commons DBCP Apache Commons DBCP是Apache组织提供的一款开源数据库连接池组件,它基于Jakarta-...
### c3p0 数据连接池知识点详解 #### 定义 ...总结而言,c3p0 是一个非常强大且功能全面的 JDBC 连接池实现,不仅提供了快速简单的配置方式,还支持复杂的高级配置选项,能够满足各种复杂的应用场景需求。
总的来说,c3p0和ojdbc14是Java Web应用中常用的数据库连接池和驱动,它们的合理配置和使用能够显著提高数据库操作的效率,同时降低资源消耗。通过深入理解这两个组件的工作原理和配置方法,开发者可以更好地优化...
以下是关于c3p0连接池的详细使用步骤和关键配置。 1. **添加依赖** 在项目中使用c3p0,首先需要在构建文件(如Maven的pom.xml或Gradle的build.gradle)中引入相应的依赖。对于Maven用户,可以在pom.xml中添加以下...