上一期我写了一篇Druid连接池的基本配置与使用,今天我要介绍一下C3P0连接池的基本使用。因为是介绍基本使用,所以我打算用一个非常简单的java应用来教大家如何对C3P0连接池进行基本配和使用。所以你只要有jdbc和Java基础就能看懂这篇文章,并学会如何使用。


一.C3P0连接池简介

C3P0连接池也是一款开源的连接池,它与阿里巴巴的Druid的使用方法都差不多。不同之处在于Driud连接池的数据库配置是写在druid-config.properties的属性配置文件中,而C3P0连接池把数据库配置写在c3p0-config.xml的xml文件中。注意,这两个配置文件的文件名都写死了,不能乱改为其他名字。

二.C3P0连接池的使用步骤

1.创建一个普通的java项目,然后在项目文件夹下新建一个lib文件夹,用于存放我们要用到的第三方jar包。项目如下结构:(哈哈,是不是太细了)

2.然后下载我们需要用到的jar包,需要用到mysql的jdbc驱动,c3p0-0.9.5.5.jar和mchange-commons-java.jar。

可以百度c3p0,然后进入mchange.com找到下载链接下载jar包。也可以用maven导入所需要的jar包。如果你不会下载可以私信找我要,我发给你。或者教你如何下载。

下面导入好jar包后,把jar包到到模块中就开始操作和使用了。

3.在src目录下创建一个c3p0-config.xml文件,然后进行如下配置。注意,xml中要对特殊符号进行转义。

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config><default-config><!--jdbc驱动类--><property name="driverClass">com.mysql.cj.jdbc.Driver</property><!--连接字符串--><property name="jdbcUrl">jdbc:mysql://localhost:3306/files</property><!--数据库用户名--><property name="user">root</property><!--数据库的密码--><property name="password">zc20020106</property><!--初始化创建的连接数量--><property name="initialPoolSize">10</property><!--最大的连接数量--><property name="maxPoolSize">20</property></default-config>
</c3p0-config>

4.在main.java里面编写使用代码。

package com.company;import com.mchange.v2.c3p0.ComboPooledDataSource;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;public class Main {public static void main(String[] args) {//1.加载配置文件// 2.创建DataSource//这里两步直接合为了一步写,非常方便。DataSource dataSource=new ComboPooledDataSource();//3.得到数据库连接Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;try {conn=dataSource.getConnection();//4.后面的用法就是jdbc的用法了String sql="select id from myfile";ps=conn.prepareStatement(sql);rs=ps.executeQuery();while (rs.next()){System.out.println(rs.getInt("id"));}} catch (SQLException e) {e.printStackTrace();}finally {//不要忘记finally来释放资源//但是这里使用连接池关闭和不使用连接池关闭有所不同,// 使用连接池conn.close()是将连接回收到连接池中,// 不使用连接池conn.close()关闭则直接释放连接if (conn!=null){try {conn.close();} catch (SQLException e) {e.printStackTrace();}}if (ps!=null){try {ps.close();} catch (SQLException e) {e.printStackTrace();}}if (rs!=null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}}}}
}

这里conn获取的数据库连接是连接池在程序启动时创建好的连接,直接就能被获取拿来用,用完close()后,该连接又会回收到连接池中,等待下一次被调用。使用起来非常简单吧。

C3P0连接池的基本配置与使用相关推荐

  1. 关于c3p0连接池使用xml配置出现的一些错误

    错误信息如下 7月 19, 2019 10:53:22 上午 com.mchange.v2.log.MLog 信息: MLog clients using java 1.4+ standard log ...

  2. c3p0连接池的详细配置

    数据库连接是一个耗费大量资源且相当慢的操作,所以为了提高性能和连接速度,诞生了连接池这样的概念. 在多用户并发操作过程中,连接池尤为重要. 它是将那些已连接的数据库连接存放在一个容器里(连接池),这样 ...

  3. spring配置c3p0连接池、spring的声明式事务管理

    一.spring配置c3p0连接池: 1.导入maven依赖: <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 --> & ...

  4. c3p0和jdbctemplate配置oracle集群rac,C3P0连接池、DRUID连接池和JdbcTemplate

    目录 一.C3P0连接池 1.C3P0连接池简介 2.常用的配置参数 3.C3P0连接池基本使用 (1)C3P0配置文件 (2)API介绍 4.使用步骤 二.DRUID连接池 1. DRUID简介 2 ...

  5. Spring+Hibernate+c3p0连接池配置-连接无法释放的问题解决方案

     1.Spring+Hibernate+c3p0连接池配置: <?xml version="1.0" encoding="UTF-8"?> < ...

  6. Hibernate配置C3P0连接池(在配好基本的hibernate配置下使用)

    拷贝jar包 找到我们的hibernate安装包,在lib目录下找到optional目录,打开c3p0文件,拷贝里面的jar包到eclipse里 写一个测试类,代码入下 public class C3 ...

  7. Hibernate C3P0连接池配置

    本文向大家介绍Hibernate C3P0连接池,可能好多人还不了解Hibernate C3P0连接池,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西. Hibernate自带的连接池算 ...

  8. c3p0连接池的配置和简单使用

    背景 一般我们在项目中操作数据库时,都是每次需要操作数据库就建立一个连接,操作完成后释放连接.因为jdbc没有保持连接的能力,一旦超过一定时间没有使用(大约几百毫秒),连接就会被自动释放掉.而每次新建 ...

  9. hibernate4配置c3p0连接池报错

    在hibernate的xml文件中配置c3p0连接池时,运行报错: java.lang.ClassNotFoundException: Could not load requested class : ...

  10. MyBatis配置C3P0连接池

    这两天学到Mybatis感觉就要疯了,第一次接触,我是不是应该写点笔记,下面呢,记录一下连接池的配置,防止忘了. 第一步,二话不说,先导入所需jar包(如图所示三个) 第二步,继承UnpooledDa ...

最新文章

  1. c# 垃圾回收是引用类型而言的
  2. 智能老旧模糊照片修复——C++实现GFPGAN模型推理
  3. WINDOWS 蓝屏错误代码说明一览表
  4. 安全测试基础 -- 概述【转载】
  5. 江苏高考成绩什么时候可以查询2021,2021年江苏高考成绩什么时候公布出来,几月几号几点钟可以查询...
  6. Python集合set与frozenset的区别
  7. 浅谈易用性测试及GUI常见的测试要求
  8. 前端的c语言面试题,腾讯WEB前端笔试题和面试题答案
  9. ECharts 打造在线个人简历
  10. JAVA:实现ClosestPair最近对算法(附完整源码)
  11. win10卸载预装软件
  12. python怎么取百位_#python计算结果百位500向下取整,(0-499取000,500-999取500)
  13. (简单)SQL练习13:从titles表获取按照title进行分组
  14. 【java集合】ConcurrentHashMap源码分析
  15. guest additions
  16. [0CTF 2016]piapiapia php反序列化字符串逃逸
  17. 微积分学 \ 线性代数 \ 概率论与数理统计
  18. Python3网络爬虫教程8——有道在线翻译项目(JS加密)
  19. 固定资产月结\年结流程
  20. python中123+5.0的执行结果_123+5.0的执行结果为()_学小易找答案

热门文章

  1. 一、Django初级
  2. 关于visio 2007导入独立图库
  3. 扫描二维码 打开 小程序或是H5网页
  4. sql server 替换字符串中的某些字符
  5. C语言SM4算法实现(基于GMSSL)
  6. 室内定位发展趋势分析
  7. Eviews6 7 软件安装包
  8. Altium_Designer的使用
  9. 建筑能源管理系统主要有什么功能?
  10. 【君思智慧园区】智慧能源综合管理平台,智慧能源管理云平台建设方案!