`
dannyhz
  • 浏览: 393169 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

c3p0的使用代码

阅读更多



package c3p0.test;

import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.mchange.v2.c3p0.PooledDataSource;

public class C3p0Test {

	public static void main(String[] args) {
		ComboPooledDataSource pool = new ComboPooledDataSource();
        try {
        	//设置数据库驱动
            pool.setDriverClass( "com.mysql.jdbc.Driver" );
        } catch (PropertyVetoException e) {
            e.printStackTrace();
        } 
        //设置数据库链接
        pool.setJdbcUrl( "jdbc:mysql://127.0.0.1:3306/inss_print" );
        //设置用户名
        pool.setUser("root"); 
        //设置密码
        pool.setPassword("root");                                  
          
        //当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出 
		//SQLException,如设为0则无限期等待。单位毫秒。Default: 0
		pool.setCheckoutTimeout(20000);
		//当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3                                    
        pool.setAcquireIncrement(3);
        //连接池中保留的最小连接数
        pool.setMinPoolSize(3);
        //连接池中保留的最大连接数
        pool.setMaxPoolSize(20);
        //初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。Default: 3 
		pool.setInitialPoolSize(3);
        //最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0
        pool.setMaxIdleTime(60); 
        /**因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的
        时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable
        等方法来提升连接测试的性能。Default: false
        */
        pool.setTestConnectionOnCheckout(false);
        
        try {
            Connection connection = pool.getConnection();
            showConnPoolInfo(pool);
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery("select * from userinfo");
            while(resultSet.next()){
                System.out.println(resultSet.getString("username"));
            }
            resultSet.close();
            statement.close();
            connection.close();
            
        } catch (SQLException e) {
            e.printStackTrace();
        }finally
        {
        	showConnPoolInfo(pool);
        }
	}
	
	/**
	 * 显示连接池状态
	 */
	private static void showConnPoolInfo(ComboPooledDataSource pool){
		PooledDataSource pds = (PooledDataSource) pool;
		if(null != pds){
			try {
				System.out.println("------------c3p0连接池链接状态--------------");
				System.out.println("c3p0连接池中 【 总共 】 连接数量:"+pds.getNumConnectionsDefaultUser());
				System.out.println("c3p0连接池中 【  忙  】 连接数量:"+pds.getNumBusyConnectionsDefaultUser());
				System.out.println("c3p0连接池中 【 空闲 】 连接数量:"+pds.getNumIdleConnectionsDefaultUser());
				System.out.println("c3p0连接池中 【未关闭】 连接数量:"+pds.getNumUnclosedOrphanedConnectionsAllUsers());
			} catch (SQLException e) {
				System.out.println("c3p0连接池异常!");
			}
		}
	}
}

分享到:
评论

相关推荐

    C3P0 使用详细说明

    对于初学者来说,理解并掌握C3P0的使用是数据库操作中非常重要的一步。下面将详细介绍C3P0连接池的基本概念、配置、使用方法以及常见问题。 一、C3P0简介 C3P0是由M EHood开发的一款优秀的数据库连接池,其主要功能...

    C3P0使用所需要的jar包

    在代码中,可以通过以下方式创建并使用C3P0数据源: ```java import com.mchange.v2.c3p0.ComboPooledDataSource; public class JdbcUtil { private static ComboPooledDataSource cpds = new ...

    c3p0连接池源代码

    C3P0连接池是Java开发中常用的数据库连接...通过阅读和分析`c3p0-0.9.2.src`中的源代码,开发者可以了解到C3P0如何实现上述功能,以及如何针对具体应用场景进行定制和优化,这对于提升开发能力和解决实际问题大有裨益。

    c3p0所依赖的jar包

    在Java代码中,你可以通过以下方式创建C3P0的数据源: ```java Properties props = new Properties(); props.setProperty("driverClass", "com.mysql.jdbc.Driver"); props.setProperty("jdbcUrl", "jdbc:mysql://...

    C3P0相关的JAR包

    在代码中,可以通过DataSource接口获取数据库连接,例如使用Spring框架时,可以在Bean配置中注入C3P0的数据源,如下: ```java @Resource(name = "myDataSource") private DataSource dataSource; public ...

    c3p0连接池jar包

    3. 初始化数据源:在代码中加载配置文件,并实例化C3P0的数据源对象。 4. 获取和释放连接:在需要使用数据库的地方,通过数据源对象获取连接;使用完后,及时关闭并归还连接。 5. 关闭连接池:在应用结束时,记得...

    JavaEE源代码 c3p0-0.9.0

    JavaEE源代码 c3p0-0.9.0JavaEE源代码 c3p0-0.9.0JavaEE源代码 c3p0-0.9.0JavaEE源代码 c3p0-0.9.0JavaEE源代码 c3p0-0.9.0JavaEE源代码 c3p0-0.9.0JavaEE源代码 c3p0-0.9.0JavaEE源代码 c3p0-0.9.0JavaEE源代码 c3p...

    C3P0的jar包

    在实际使用中,开发人员通常会将C3P0的jar包(如c3p0-0.9.1.2)与项目依赖一起打包,以实现数据库连接池的功能。配置C3P0通常需要以下步骤: 1. 添加C3P0的jar包到项目的类路径。 2. 配置C3P0的数据源,这可以通过...

    springMVC整合C3P0连接池

    总之,整合SpringMVC和C3P0连接池可以提升应用的数据库操作性能,通过合理配置C3P0参数,可以进一步优化连接池的使用,降低资源消耗。同时,结合Spring的其他组件,如JdbcTemplate,可以简化数据库操作,让代码更易...

    c3p0-0.9.5.2-API文档-中文版.zip

    赠送源代码:c3p0-0.9.5.2-sources.jar; 赠送Maven依赖信息文件:c3p0-0.9.5.2.pom; 包含翻译后的API文档:c3p0-0.9.5.2-javadoc-API文档-中文(简体)版.zip; Maven坐标:com.mchange:c3p0:0.9.5.2; 标签:...

    C3P0 连接池源码

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

    c3p0-0.9.2-pre1

    2. **配置文件**:c3p0的配置通常通过`c3p0.properties`文件进行,也可以在代码中直接设置。配置参数包括初始连接数、最大连接数、超时时间等。例如: ``` c3p0.acquireIncrement=3 c3p0.maxPoolSize=100 c3p0....

    C3P0用到的jar包和配置文件.zip

    在你的博客文章(链接已提供)中,你应该会详细介绍如何集成C3P0,包括如何在代码中创建数据源,如何加载配置文件,以及如何在实际应用中使用连接池服务。通过这种方式,你可以避免频繁的数据库连接创建和关闭,提高...

    c3p0的使用

    总的来说,c3p0 是一个强大且灵活的数据库连接池实现,通过合理的配置和使用,可以显著提升 Java 应用在数据库交互方面的性能和稳定性。开发者需要根据实际项目需求,选择合适的配置参数,确保 c3p0 能够发挥出最佳...

    c3p0连接池所需要用到的2个jar包

    5. **配置灵活**:C3P0允许开发者通过XML配置文件或代码动态设置各种参数,如最大连接数、最小连接数、超时时间等,以适应不同的应用场景。 在实际使用C3P0时,你需要在项目中引入这两个JAR包,并进行相应的配置。...

    C3P0-jar包和依赖包.zip

    在解压这个文件后,开发者需要将解压出的JAR文件添加到项目的类路径中,以便在代码中引用C3P0的相关类。 2. **mchange-commons-java-0.2.20.jar**:这是一个MChange Commons Java库,它是C3P0的一个依赖库。MChange...

    数据库连接池c3p0jar包

    在本文中,我们将深入探讨C3P0连接池的基本概念、工作原理以及如何在Java项目中配置和使用。 **C3P0简介** C3P0是由David Syer创建的一个开源的JDBC连接池,它的全称是Composed Connection Pool 2000。C3P0的主要...

    c3p0需要的所有的jar包(完整)

    在Java应用程序中,尤其是在服务器端应用如Web应用或企业级JavaBean(EJB)中,使用C3P0可以提高数据库连接的复用性,从而提高系统的性能和效率。下面我们将详细讨论C3P0连接池以及其相关的jar包。 1. **C3P0简介**...

    javaweb后端开发用到的c3p0jar包javaweb后端开发用到的c3p0jar包.rar

    C3P0 jar包的使用可以显著提升应用程序的性能,因为它可以有效地重用数据库连接,减少创建和销毁连接的时间开销。 1. **C3P0介绍** C3P0是由Mchange公司开发的,它提供了一个完全Java实现的数据库连接池。C3P0的...

    C3P0和DButils

    将C3P0和DBUtils结合使用,可以构建一个高效且稳定的数据库访问层。例如,通过C3P0初始化一个数据库连接池,然后在DBUtils的QueryRunner中使用这些连接来执行数据库操作。这样,不仅可以利用C3P0的连接池管理,还能...

Global site tag (gtag.js) - Google Analytics