`

C3P0连接池的使用

阅读更多

转自:

http://qiufubin.blog.sohu.com/55457392.html

 

 

一.在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"
	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>

 

分享到:
评论

相关推荐

    c3p0连接池使用所需jar包

    下面我们将详细探讨C3P0连接池的使用以及所需的jar包。 首先,C3P0连接池的主要功能包括: 1. **连接管理**:C3P0可以自动创建、测试、回收和关闭数据库连接,避免了手动管理连接的繁琐工作,降低了系统资源的消耗...

    day18 17.c3p0连接池使用

    在本教程中,我们将深入探讨“day18 17.c3p0连接池使用”的相关知识点,包括C3P0的基本概念、配置、优势以及如何在实际项目中应用。 首先,理解C3P0的核心功能。C3P0连接池的主要任务是管理和复用数据库连接,避免...

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

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

    C3P0连接池配置需要的jar包

    C3P0连接池是Java应用中常用的数据库连接池组件,它允许程序在不关闭物理连接的情况下,管理和重用数据库连接,从而提高了应用程序的性能和效率。C3P0库依赖于其他几个JAR包来实现其功能,包括`c3p0-0.9.2.1.jar`、`...

    c3p0连接池jar包

    4. **C3P0使用**: - 添加依赖:在项目中引入C3P0的JAR包,如`lib/c3p0-*.jar`,同时可能需要包含其他的依赖,如`lib/mchange-commons-java-*.jar`。 - 创建数据源:通过`...

    C3P0连接池jar包(正式).zip

    1. **连接池管理**:C3P0可以创建并维护一定数量的数据库连接,当应用程序需要时,可以从连接池中获取连接,用完后归还,而不是每次使用都创建新的连接,这大大减少了数据库连接的创建和销毁开销。 2. **自动检测与...

    C3P0连接池

    #### 五、C3P0连接池的使用场景 C3P0连接池广泛应用于以下几种场景: - **Web应用开发**:在Web应用中,C3P0可以有效地管理与数据库的连接,提高系统的响应速度。 - **企业级应用开发**:对于高并发的企业级应用,C3...

    C3P0 连接池源码

    C3P0数据库连接池是Java开发中广泛使用的开源组件,用于管理数据库连接,提高数据库访问效率并降低系统资源消耗。源代码分析可以帮助我们深入理解其内部机制,从而更好地优化和配置C3P0,提升应用程序性能。 1. **...

    c3p0连接池工具

    总之,c3p0连接池是Java应用中管理数据库连接的有效工具,通过合理配置和使用,可以显著提高系统的运行效率和稳定性。在实际开发中,应结合具体项目需求选择合适的连接池,并进行持续监控和优化。

    C3P0连接池管理类

    在Java应用中,尤其是在Web应用中,频繁的数据库连接创建和关闭会消耗大量的系统资源,而通过使用C3P0这样的连接池,可以预先配置并创建一定数量的数据库连接,供多个请求共享,从而减少了数据库连接的创建和销毁...

    C3P0连接池配置

    **C3P0连接池配置详解** C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。C3P0的主要特点是轻量级、高效且稳定,广泛应用于各种Java Web应用中。在本文中,我们将深入探讨...

    C3P0数据库连接池

    C3P0数据库连接池和jar包,因为jdbc没有保持连接的能力,一旦超过一定时间没有使用(大约几百毫秒),连接就会被自动释放掉。而每次新建连接都需要140毫秒左右的时间,所以耗费时间比较多。若使用C3P0连接池来池化...

    c3p0连接池配置使用

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

    c3p0连接池

    `c3p0-0.9.1.2.jar`是C3P0的jar包文件,包含了C3P0的所有类和方法,导入此库后,我们可以在项目中直接使用C3P0连接池。 C3P0的官方开发文档详细介绍了C3P0的配置、使用方法、API接口及常见问题解答,对于开发者来说...

    JDBC中C3p0连接池使用方法 (个人总结综合教程,适合新入门的朋友阅读)

    JDBC中C3p0连接池使用方法 (个人总结综合教程,适合新入门的朋友阅读)

    c3p0连接池JAR包

    c3p0连接池JAR包c3p0连接池JAR包c3p0连接池JAR包c3p0连接池JAR包c3p0连接池JAR包

    c3p0连接池插件

    总之,c3p0作为一款成熟的数据库连接池,通过合理的配置和使用,可以在保证应用性能的同时,有效地管理和维护数据库连接,降低资源消耗。在实际项目中,选择适合的连接池需要综合考虑项目的特性和需求。

Global site tag (gtag.js) - Google Analytics