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")); } }
相关推荐
下面我们将详细探讨C3P0连接池的使用以及所需的jar包。 首先,C3P0连接池的主要功能包括: 1. **连接管理**:C3P0可以自动创建、测试、回收和关闭数据库连接,避免了手动管理连接的繁琐工作,降低了系统资源的消耗...
在本教程中,我们将深入探讨“day18 17.c3p0连接池使用”的相关知识点,包括C3P0的基本概念、配置、优势以及如何在实际项目中应用。 首先,理解C3P0的核心功能。C3P0连接池的主要任务是管理和复用数据库连接,避免...
**c3p0连接池使用方法** c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。使用c3p0连接池可以有效地管理和优化数据库连接,提高系统的性能和稳定性。以下是关于c3p0连接池...
C3P0连接池是Java应用中常用的数据库连接池组件,它允许程序在不关闭物理连接的情况下,管理和重用数据库连接,从而提高了应用程序的性能和效率。C3P0库依赖于其他几个JAR包来实现其功能,包括`c3p0-0.9.2.1.jar`、`...
4. **C3P0使用**: - 添加依赖:在项目中引入C3P0的JAR包,如`lib/c3p0-*.jar`,同时可能需要包含其他的依赖,如`lib/mchange-commons-java-*.jar`。 - 创建数据源:通过`...
1. **连接池管理**:C3P0可以创建并维护一定数量的数据库连接,当应用程序需要时,可以从连接池中获取连接,用完后归还,而不是每次使用都创建新的连接,这大大减少了数据库连接的创建和销毁开销。 2. **自动检测与...
C3P0数据库连接池是Java开发中广泛使用的开源组件,用于管理数据库连接,提高数据库访问效率并降低系统资源消耗。源代码分析可以帮助我们深入理解其内部机制,从而更好地优化和配置C3P0,提升应用程序性能。 1. **...
总之,c3p0连接池是Java应用中管理数据库连接的有效工具,通过合理配置和使用,可以显著提高系统的运行效率和稳定性。在实际开发中,应结合具体项目需求选择合适的连接池,并进行持续监控和优化。
在Java应用中,尤其是在Web应用中,频繁的数据库连接创建和关闭会消耗大量的系统资源,而通过使用C3P0这样的连接池,可以预先配置并创建一定数量的数据库连接,供多个请求共享,从而减少了数据库连接的创建和销毁...
**C3P0连接池配置详解** C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。C3P0的主要特点是轻量级、高效且稳定,广泛应用于各种Java Web应用中。在本文中,我们将深入探讨...
C3P0数据库连接池和jar包,因为jdbc没有保持连接的能力,一旦超过一定时间没有使用(大约几百毫秒),连接就会被自动释放掉。而每次新建连接都需要140毫秒左右的时间,所以耗费时间比较多。若使用C3P0连接池来池化...
**c3p0连接池配置使用** c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。使用c3p0连接池可以有效地管理和优化数据库连接,提高系统的性能和稳定性。下面将详细介绍c3p0的...
`c3p0-0.9.1.2.jar`是C3P0的jar包文件,包含了C3P0的所有类和方法,导入此库后,我们可以在项目中直接使用C3P0连接池。 C3P0的官方开发文档详细介绍了C3P0的配置、使用方法、API接口及常见问题解答,对于开发者来说...
JDBC中C3p0连接池使用方法 (个人总结综合教程,适合新入门的朋友阅读)
c3p0连接池JAR包c3p0连接池JAR包c3p0连接池JAR包c3p0连接池JAR包c3p0连接池JAR包
总之,c3p0作为一款成熟的数据库连接池,通过合理的配置和使用,可以在保证应用性能的同时,有效地管理和维护数据库连接,降低资源消耗。在实际项目中,选择适合的连接池需要综合考虑项目的特性和需求。