`

JDBC连接池C3P0(一):使用properties文件进行配置

    博客分类:
  • C3P0
阅读更多

1、在src下新建一个properties文件,名字随便符合命名规范即可,我这里的名称为:c3p0config.properties,内容如下:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/test
jdbc.username=root
jdbc.pwd=root

2、新建类进行连接测试:

public class DBConnectionByC3P0 {
	
	private static String url = null;
	private static String username = null;
	private static String pwd = null;
	private static DataSource ds_pooled;
	//私有构造方法,不能创建对象  
    private DBConnectionByC3P0(){ }
    
	//加载数据库连接的配置文件和驱动
	static{
		Properties env = new Properties();
		try {
			InputStream in = DBConnectionByC3P0.class.getResourceAsStream("/c3p0config.properties");
			//加载属性文件中的数据库配置信息
			//以=左边作为key值,右边作为value值
			env.load(in); 
			
			//1. 加载驱动类
			Class.forName(env.getProperty("jdbc.driver"));
			
			url = env.getProperty("jdbc.url");
			username = env.getProperty("jdbc.username");
			pwd = env.getProperty("jdbc.pwd");
			
			//2、设置连接数据库的配置信息
			DataSource ds_unpooled = DataSources.unpooledDataSource(url, username, pwd);
			
			Map<String, Object> pool_conf = new HashMap<String, Object>();
			//3、设置最大连接数
			pool_conf.put("maxPoolSize", 10);
			ds_pooled = DataSources.pooledDataSource(ds_unpooled,pool_conf);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	//获取连接对象
	public static Connection getConnection() throws SQLException {
		return ds_pooled.getConnection();
	}
	
	//释放连接池资源
	public static void clearup(){
		if(ds_pooled != null){
			try {
				DataSources.destroy(ds_pooled);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	private static Integer counter = 0;
	public static void main(String[] args){
		for (int i = 1; i <= 20; i++) {
			new Thread(new Runnable() {
				public void run() {
					Connection conn = null;
					try {
						conn = DBConnectionByC3P0.getConnection();
						synchronized (counter) {
							System.out.print(Thread.currentThread().getName());
							System.out.print("counter=" +(counter++)+ "\tconn="+conn);
							System.out.println();
							conn.prepareStatement("select * from s_user");
							conn.close();
						}
					} catch (SQLException e) {
						e.printStackTrace();
					}  
				}
			}).start();
		}
	}
}

 

分享到:
评论

相关推荐

    jdbc连接池c3p0工具包

    **jdbc连接池c3p0工具包** 在Java开发中,数据库操作是常见的任务,而JDBC(Java Database Connectivity)是Java与数据库交互的标准接口。然而,直接使用JDBC进行数据库连接可能会导致性能问题,因为每次连接和断开...

    数据库连接池c3p0jar包

    C3P0是由David Syer创建的一个开源的JDBC连接池,它的全称是Composed Connection Pool 2000。C3P0的主要目标是提高数据库连接的效率和稳定性,通过复用已建立的数据库连接,避免频繁地创建和关闭连接,从而降低系统...

    JDBC连接池使用工具 C3P0 连接池 and druid-1.0.9

    C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。C3P0的主要特点包括: 1. **连接测试**:C3P0提供了多种测试策略,确保获取到的连接是可用的。 2. **连接池初始化和最大...

    c3p0连接池jar包

    - C3P0:作为一款开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。 2. **C3P0功能特点**: - 自动管理连接:C3P0可以自动检测并修复失效的数据库连接,防止因长时间未使用的连接...

    C3P0配置文件

    --配置连接池mysql--&gt; &lt;named-config name="mysql"&gt; &lt;property name="driverClass"&gt;com.mysql.jdbc.Driver&lt;/property&gt; &lt;property name="jdbcUrl"&gt;jdbc:mysql://localhost:3306/CoupleSpace&lt;/property&gt; ...

    c3p0 还有其他连接池

    c3p0是一款开源的Java数据库连接池实现,由Miquel Arquero创建,它是Comprehensive Database Connection Pooling的缩写。c3p0提供了对JDBC数据库连接的池化管理,其主要功能包括: 1. **连接初始化**:c3p0允许配置...

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

    C3P0是一个开源的Java数据库连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Java应用程序中,数据库连接池扮演着非常重要的角色,它能够有效地管理数据库连接,提高系统性能,减少数据库资源...

    c3p0连接池

    c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。c3p0由Miquel Delgado开发,其核心功能在于提高了数据库连接的效率和管理,通过池化数据库连接来减少创建和销毁连接的开销...

    c3p0连接池插件

    c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。作为一个数据库连接池,c3p0的主要作用在于管理数据库连接,以提高应用程序的性能和效率。在高并发的Web应用中,频繁地...

    Hibernate 中配置C3P0连接池

    C3P0就是一种广泛使用的第三方JDBC连接池实现,它被集成在Hibernate框架中,可以便捷地进行配置。 **1. 为什么选择C3P0连接池** Hibernate自带的连接池算法并不成熟,主要适用于快速开发和学习,而不适合在生产...

    连接池c3p0所需要的所有jar包

    C3P0是一个灵活、功能强大的JDBC连接池,它提供了数据源和JNDI绑定的数据源实现,能够帮助Java应用管理数据库连接。C3P0的主要优点包括自动检测并回收无效连接、支持多线程环境下的并发控制以及资源池的动态扩展。 ...

    c3p0连接池jar包及doc文件

    总结,C3P0是一个强大的JDBC连接池实现,它的功能丰富,易于配置和使用。在Java应用程序中,正确使用C3P0可以显著提高数据库访问的效率和系统的稳定性。提供的jar包和doc文件是理解和使用C3P0的关键资源,应充分利用...

    c3p0数据源连接池的配置

    C3P0(Concurrent Data Source Pooling for Java)是一款开源的JDBC连接池实现,它提供了对JDBC资源进行统一管理的能力,通过减少数据库连接的创建和销毁次数,有效提高了应用程序访问数据库的效率和响应速度。C3P0...

    java数据库连接池c3p0

    Java数据库连接池C3P0是一种常用的开源数据库连接管理工具,它通过提供连接池服务,提高了应用程序处理数据库连接的效率,降低了系统资源的消耗。在Java应用中,尤其是在服务器端,数据库连接的创建和关闭是相对耗时...

    JDBC数据源连接池的配置和使用示例

    - C3P0:开源的JDBC连接池,提供了比JDBC更强大的功能,如自动检测死锁、自动重连等。 - DBCP:Apache的一个开源项目,基于Jakarta-pool实现,是Tomcat默认的数据源。 - HikariCP:被誉为“最快的Java JDBC连接池”...

    c3p0连接池:c3p0-0.9.2.1.jar/mchange-commons-java-0.2.3.4.jar

    c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。c3p0-0.9.2.1.jar和mchange-commons-java-0.2.3.4.jar是c3p0连接池的两个核心组件,前者是c3p0的主要实现库,后者则是其...

    c3p0数据库连接池

    **c3p0数据库连接池**是Java后端开发中常用的一个开源的数据库连接池组件,主要用于管理和优化数据库连接。它的全称是ComMchange V3 Pooled Database Connections,由Maurice Priess创建,旨在提供一个高效、灵活且...

    Java Jdbc mysql数据库连接驱动和c3p0 jar包极其配置文件

    MySQL是一种广泛使用的开源关系型数据库管理系统,而C3P0是一个开放源代码的JDBC连接池,它实现了数据源和JNDI绑定,提供了一种数据库连接管理的方式,可以提高数据库连接的效率和性能。 在这个主题中,我们主要...

    c3p0数据库连接池jar包

    C3P0库包含一个名为`c3p0.jar`的文件,它是使用该连接池的核心依赖。 1. **什么是数据库连接池**:数据库连接池是数据库管理的一种技术,它预先在内存中创建一定数量的数据库连接,应用程序需要时可以从池中获取,...

Global site tag (gtag.js) - Google Analytics