步骤如下:

导入c3p0-0.9.1.2.jar

1. 创建 c3p0-config.xml 文件, 
2. 创建 ComboPooledDataSource 实例;
 DataSource dataSource =new ComboPooledDataSource("helloc3p0");  
 3. 从 DataSource 实例中获取数据库连接.

第一种方法:不使用工具类

package tan.com;import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;import javax.sql.DataSource;import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
import org.junit.Test;import com.mchange.v2.c3p0.ComboPooledDataSource;
public class TestJDBC {/**如何使用c3p0?* 1. 创建 c3p0-config.xml 文件, * 2. 创建 ComboPooledDataSource 实例;* DataSource dataSource =new ComboPooledDataSource("helloc3p0");  * 3. 从 DataSource 实例中获取数据库连接. */@Testpublic void testC3poWithConfigFile() throws Exception{DataSource dataSource = new ComboPooledDataSource("helloc3p0");  System.out.println(dataSource.getConnection()); //获取数据库连接池最大连接数ComboPooledDataSource comboPooledDataSource = (ComboPooledDataSource) dataSource;System.out.println(comboPooledDataSource.getMaxStatements()); }

配置c3p0-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config><named-config name="helloc3p0"><!-- 指定连接数据源的基本属性 --><property name="user">root</property><property name="password">1234</property><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql:///tan</property><!-- 若数据库中连接数不足时, 一次向数据库服务器申请多少个连接 --><property name="acquireIncrement">5</property><!-- 初始化数据库连接池时连接的数量 --><property name="initialPoolSize">5</property><!-- 数据库连接池中的最小的数据库连接数 --><property name="minPoolSize">5</property><!-- 数据库连接池中的最大的数据库连接数 --><property name="maxPoolSize">10</property><!-- C3P0 数据库连接池可以维护的 Statement 的个数 --><property name="maxStatements">20</property><!-- 每个连接同时可以使用的 Statement 对象的个数 --><property name="maxStatementsPerConnection">5</property></named-config></c3p0-config>

第二种方法:使用工具类JDBCTools.java

package tan.com;import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class JDBCTools {//数据库连接池应该只被初始化一次(多个项目共享一个连接池就够了)private static DataSource dataSource=null;static{dataSource=new ComboPooledDataSource("helloc3p0");}public static Connection getConnection() throws Exception{return dataSource.getConnection();}/*** 2、关闭资源* 关闭资源关闭 Statement 和 Connection和ResultSet* @param rs* @param statement* @param conn*/public static void release(ResultSet rs, Statement statement, Connection conn) {if(rs != null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (statement != null) {try {statement.close();} catch (Exception e2) {e2.printStackTrace();}}if (conn != null) {try {conn.close();} catch (Exception e2) {e2.printStackTrace();}}}/*** 关闭 Statement 和 Connection* @param statement* @param conn*/public static void release(Statement statement, Connection conn) {if (statement != null) {try {statement.close();} catch (Exception e2) {e2.printStackTrace();}}if (conn != null) {try {conn.close();} catch (Exception e2) {e2.printStackTrace();}}}}

使用关键代码:

//如何从数据库连接池中获取连接呢?@Testpublic void testJDBCTools() throws Exception{Connection connection=JDBCTools.getConnection();System.out.println(connection);}

\

C3P0数据库连接池源代码相关推荐

  1. Java数据库开发与应用之MySQL数据库、JDBC操作数据库、C3P0数据库连接池,Java反射等

    MySQL数据库,JDBC接口,MyBatis框架等,掌握的数据的存放和管理. Java数据库开发基础,介绍MySQL数据库.JDBC操作数据库.C3P0数据库连接池,Java反射等内容,进行油画商城 ...

  2. c3p0 数据库连接池

    C3P0连接池 c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展.c3p0一般是与Hibernate,Spring等框架一块使用的,当然也可以 ...

  3. [原创]java WEB学习笔记80:Hibernate学习之路--- hibernate配置文件:JDBC 连接属性,C3P0 数据库连接池属性等...

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. 数据库连接池种类、C3P0数据库连接池、德鲁伊数据库连接池

    数据库连接池种类 1.JDBC的数据库连接池使用javax.sql.DataSource来表示,DataSource只是一个接口,该接口通常由第三方提供实现 2.C3P0数据库连接池,速度相对较慢,稳 ...

  5. 数据库连接池及C3P0数据库连接池技术

    数据库连接池(重要) 注意数据库连接池只是简化获得数据库连接对象和关流的部门 1.数据库连接池: 1.概念: 其实就是一个容器(在Java中就是集合),存在数据库连接的容器,当系统初始化好后,容器被创 ...

  6. 数据库连接池 DBCP和c3p0数据库连接池

    一.数据库连接池 1. 什么是连接池 传统的开发模式下,Servlet处理用户的请求,找Dao查询数据,dao会创建与数据库之间的连接,完成数据查询后会关闭数据库的链接. 这样的方式会导致用户每次请求 ...

  7. 【JDBC】使用c3p0数据库连接池的各种报错警告

    使用c3p0数据库连接池的各种报错警告 使用c3p0数据库连接池的时候,先导入了三个jar包在lib 文件夹中, c3p0-0.9.5.2.jar mchange-commons-java-0.2.3 ...

  8. C3P0数据库连接池的配置

    在pom.xml文件中导入jar包 <dependency><groupId>com.mchange</groupId><artifactId>c3p0 ...

  9. Python操作数据库及Python实现mysql数据库连接池源代码

    简介 pymysql:纯Python实现的一个驱动.因为是纯Python编写的,因此执行效率不如MySQL-python.并且也因为是纯Python编写的,因此可以和Python代码无缝衔接. MyS ...

最新文章

  1. 惊呆了!两人发现抵用券漏洞,疯狂“薅羊毛”获利 770 余万
  2. Shiro <shiro:hasPermission >标签不生效,shiro权限不生效原因
  3. 笔记:Java中的单例设计模式
  4. Oracle select 基础查询语句 day02
  5. PD生成SQL脚本附带注释命令
  6. Microsoft Teams的Meet Now功能
  7. 使用FindBugs-IDEA插件找到代码中潜在的问题
  8. Visual C++中的ODBC编程
  9. 年会季来临,年会会场管理一招搞定!
  10. flex弹性盒子的兼容性写法
  11. HDU 4069 Squiggly Sudoku
  12. 2022年十大突破性技术,“无密码”排名第一
  13. 电脑驱动器中出现Winretools和ESP问题
  14. 即使被拖库,也可以保证密码不泄露(一种安全的加密方案)
  15. 手机WIFI传文件到局域网服务器,局域网内手机和电脑怎么实现无线传输文件?
  16. NVIDIA RTX A6000深度学习训练基准
  17. 中国中型皮卡市场趋势报告、技术动态创新及市场预测
  18. 罗切斯特大学计算机科学硕士介绍,罗切斯特大学计算机科学专业
  19. office2016实用论文排版技巧
  20. puppy linux wifi6,Puppy官网

热门文章

  1. python小象学院: JSON文件 /网络爬虫/Pandas-----空气质量描述
  2. 职称计算机合格证打印,好消息!这些职称证书可直接网上打印了,效用等同!...
  3. 网上毕业答辩!高校举办研究生学位论文网络预答辩
  4. Elasticsearch:Pinyin 分词器
  5. 粘贴PDF文本批量去掉换行符
  6. 多维度分析对比腾讯云服务器和阿里云服务器
  7. bp学习函数matlab代码,小范学数量经济学之四:BP神经网络预测的MATLAB模拟代码
  8. 多个爬虫http代理ip解决方案
  9. 微信PC最新测试版3.3.0.60 朋友圈采集 HOOK技术
  10. Python爬虫 requests教学(四):verify关健字参数