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
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连接池主要涉及到以下步骤: **2.1 配置文件** C3P0的配置通常有两种方式,通过`hibernate.properties`或`hibernate.cfg.xml`文件。在`hibernate.properties`中,你需要定义一系列以`hibernate.c3p0.`开头...
在探讨如何在Hibernate框架中配置C3P0连接池之前,我们先简要了解下Hibernate与C3P0的基本概念。 Hibernate是一个开放源代码的对象关系映射(ORM)框架,它实现了Java对象与数据库表之间的映射,允许开发人员以面向...
在【标题】"Tomcat统一配置C3P0连接池"中,我们主要探讨的是如何在Apache Tomcat服务器中集中管理数据库连接池,特别是使用C3P0这个开源的JDBC连接池实现。C3P0是一个JDBC连接池,它实现了数据源和JNDI绑定,提供了...
配置C3P0连接池时,开发者通常需要在配置文件(如Hibernate的`hibernate.cfg.xml`或Spring的`applicationContext.xml`)中指定以下参数: - `driver_class`: 数据库驱动类名,例如`com.mysql.jdbc.Driver`。 - `...
下面我们将详细讲解如何引用外部文件配置C3P0连接池。 首先,我们需要了解C3P0的基本配置参数。C3P0提供了许多可调整的参数,如最小连接数、最大连接数、获取连接的最大等待时间等。这些参数可以配置在属性文件中,...
在Java代码中配置c3p0连接池: ```java ComboPooledDataSource cpds = new ComboPooledDataSource(); cpds.setDriverClass("com.mysql.jdbc.Driver"); cpds.setJdbcUrl("jdbc:mysql://localhost:3306/mydb"); ...
使用spring管理的方式,用XML文件配置C3P0连接池。本博客https://blog.csdn.net/qq_40634846有从零基础入门的Spring,有兴趣的小伙伴可关注本博客。希望对大家有帮助
在实际使用中,我们需要配置C3P0连接池,这可以通过`C3P0连接池配置.txt`文件完成。配置项通常包括: - `minPoolSize`:最小连接数,启动时创建的连接数。 - `maxPoolSize`:最大连接数,超过这个数,应用将无法...
**三、配置C3P0连接池** 在Spring项目中使用C3P0,首先需要在项目的`pom.xml`文件中添加C3P0的依赖: ```xml <groupId>com.mchange</groupId> <artifactId>c3p0 <version>0.9.5.5 ``` 然后,在Spring的配置...
在配置C3P0连接池时,合理设置参数对于优化数据库访问性能至关重要。 ### 重要参数详解 1. **acquireIncrement**:当连接池中的可用连接数量低于最小阈值时,C3P0会一次性增加此参数指定数量的连接。默认值为3,这...
配置C3P0连接池时,你需要在项目中创建一个`com.mchange.v2.c3p0.ComboPooledDataSource`实例,并设置相关的属性,例如: ```java import com.mchange.v2.c3p0.ComboPooledDataSource; public class C3P0Config { ...
2. **连接池初始化**:在Java代码中,我们需要通过` ComboPooledDataSource `类加载并配置C3P0连接池,如下所示: ```java ComboPooledDataSource cpds = new ComboPooledDataSource(); cpds.setDriverClass(...
配置C3P0可以通过Java代码或XML配置文件完成。以下是一个简单的XML配置示例: ```xml <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <!-- 其他配置参数 --> ``` 在...
C3P0连接池是Java开发中常用的数据库连接...总之,C3P0连接池在Java应用中扮演着重要角色,合理配置和使用它可以显著提升数据库操作的效率和系统的稳定性。开发者需要根据实际需求,选择合适的连接池并进行适当的优化。
配置C3p0连接池时,开发者通常会在应用的配置文件(如`persistence.xml`或`application.properties`)中设置以下关键参数: - `initialPoolSize`: 初始化时连接池中的连接数。 - `minPoolSize`: 连接池最小保持的...
在配置C3P0时,通常会有一个名为`c3p0-config.xml`的配置文件,以下是一些常见的配置参数: - `minPoolSize`:初始化连接数,系统启动时创建的最小连接数。 - `maxPoolSize`:最大连接数,池中允许的最大连接数。 -...
2. **配置C3P0**:在配置文件(如`c3p0.properties`或应用配置文件)中设置连接池的相关参数,如数据库驱动、URL、用户名、密码以及连接池的初始化大小、最大大小等。 3. **初始化C3P0**:在代码中创建` ...
配置c3p0属性 c3p0的配置主要通过一个配置文件(如c3p0-config.xml)或直接在代码中设置。以下是一些常用的关键配置项: - `driverClass`:指定数据库驱动类,如`com.mysql.jdbc.Driver`。 - `jdbcUrl`:数据库...