`
一纸红颜岂值倾尽天下
  • 浏览: 29207 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

c3p0 连接池使用

    博客分类:
  • java
阅读更多

C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目Hibernate,Spring等。

 

 这里不详谈 只做实现 去往官网下载c3p0 jar包:http://www.126disk.com/fileview_1619526.html

 

1、jdbc.properties 配置文件

#JDBC连接驱动
jdbc.driver=com.mysql.jdbc.Driver
#服务器连接地址
jdbc.url=jdbc:mysql://127.0.0.1:3306/data?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
#用户名
jdbc.username=root
#密码
jdbc.password=123456

#连接池
#初始化连接
jdbc.initialPoolSize=10
# 最大连接
jdbc.maxPoolSize=20
#最小连接
jdbc.minPoolSize=5
#等待时间s
jdbc.maxIdleTime=30000

 

2、程序实现

package com.ai.util;

import java.beans.PropertyVetoException;
import java.io.*;
import java.sql.*;
import java.util.Properties;

import org.apache.log4j.Logger;

import com.mchange.v2.c3p0.ComboPooledDataSource;


public class JDBCUtil {
	
	private static Logger log=Logger.getLogger(JDBCUtil.class);
	//使用c3p0 连接池
	private static ComboPooledDataSource ds;
	static {
		
		ds=new ComboPooledDataSource();
		
		//加载驱动
		try {
			ds.setDriverClass(getProperties("jdbc.driver"));
		} catch (PropertyVetoException e) {
			log.error("加载驱动失败",e);
			e.printStackTrace();
		}
		//数据库连接
		ds.setJdbcUrl(getProperties("jdbc.url"));
		//用户
		ds.setUser(getProperties("jdbc.username"));
		//密码
		ds.setPassword(getProperties("jdbc.password"));
		//初始化开几个连接
		ds.setInitialPoolSize(Integer.parseInt(getProperties("jdbc.initialPoolSize")));
		//最大开几个
		ds.setMaxPoolSize(Integer.parseInt(getProperties("jdbc.maxPoolSize")));
		//最小开几个
		ds.setMinPoolSize(Integer.parseInt(getProperties("jdbc.minPoolSize")));
		//设置等待时间
		ds.setMaxIdleTime(Integer.parseInt(getProperties("jdbc.maxIdleTime")));
	}

	
	public final static Connection getConnection(){
		
		try {
			return ds.getConnection();
		} catch (SQLException e) {
			log.error("获取连接失败",e);
			e.printStackTrace();
		}
		return null;
	}
	
	
	//关闭连接
	public final static void closeConntion(ResultSet re,PreparedStatement psnt,Connection conn){
		
		
		if(re!=null)
			try {
				re.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		if(psnt!=null)
			try {
				psnt.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		if(conn!=null)
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}
	
	
	// 读取连接数据文件
	public final static String getProperties(String name){
		InputStream  str=Thread.currentThread().getContextClassLoader().getResourceAsStream("config/hibernet/jdbc.properties");
		Properties properties=new Properties();
		try {
			properties.load(str);
			return properties.getProperty(name);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			log.error("读取jdbc.properties文件不存在",e);
		} catch (IOException e) {
			e.printStackTrace();
			log.error("读取jdbc.properties文件异常",e);
		}
		return "";
	}
	
	
	
	public static String query(){
		
		
		Connection conn=JDBCUtil.getConnection();
		
		PreparedStatement psnt=null;
		
		ResultSet re=null;
		
		String sql="select * from customerinfo";
		try {
			psnt=conn.prepareStatement(sql);
			
			re=psnt.executeQuery();
			
			if(re.next()){
				return re.getString("customerid");
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			closeConntion(re, psnt, conn);
		}
		return "";
	}
	
	
	public static void main(String[] args) {
		
		System.out.println(JDBCUtil.query());
//		System.out.println(getConnection());
//		System.out.println(getProperties("driver"));
//		System.out.println(getProperties("username"));
//		System.out.println(getProperties("password"));
//		System.out.println(getProperties("url"));
		
	}
}

 

 

0
0
分享到:
评论

相关推荐

    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数据库连接池是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