C3P0连接池的基本配置与使用

简介: C3P0连接池的基本配置与使用

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


一.C3P0连接池简介


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


二.C3P0连接池的使用步骤


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


9f8cf6a8510641f2b83c55f7d8526f1b.png


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

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


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


5ea73d1db4174f9ab4d392ff02579d2c.png


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()后,该连接又会回收到连接池中,等待下一次被调用。使用起来非常简单吧。

相关文章
|
8月前
|
druid Java 数据库连接
数据库连接池及Druid使用步骤
数据库连接池及Druid使用步骤
725 2
|
1月前
|
数据库连接 数据库 数据安全/隐私保护
数据库连接池的配置文件
我们首先要确认连接池需要哪些配置信息,根据经验,一个数据库连接池至少要有一下几个必须的配置。首先是必须由用户指定的几项配置,也就是数据库驱动、数据库连接的url、用户名和密码。然后是可以由连接池自己默认指定的几项配置,这些配置一般有:连接池初始大小,连接池最大大小,健康检查开始时间,健康检查间隔时间,以及连接超时时间。这些配置信息我们可以将其写进一个properties文件里,这个文件我们命名为pool.properties,处于项目的resource目录下。在创建数据库连接池时我们需要将这些配置信息读进内存里。
|
2月前
|
XML Java 数据库连接
如何使用HikariCP连接池来优化数据库连接管理
在Java应用中,高效管理数据库连接是提升性能的关键。本文介绍了如何使用HikariCP连接池来优化数据库连接管理。通过引入依赖、配置参数和获取连接,你可以显著提高系统的响应速度和吞吐量。 示例代码展示了从配置到使用的完整流程,帮助你轻松上手。
354 3
|
SQL Java 数据库连接
自定义HikariCP连接池
自定义HikariCP连接池
566 0
|
druid Java 关系型数据库
Druid连接池的基本配置与使用
Druid连接池的基本配置与使用
3724 0
Druid连接池的基本配置与使用
|
8月前
|
监控 druid Java
数据库链接池HikariCP、Druid
数据库链接池HikariCP、Druid
|
SQL 监控 druid
深入了解Druid连接池:高性能数据库连接管理工具
在现代的应用开发中,数据库连接池是优化数据库访问性能的关键。Druid连接池作为一款高性能的数据库连接管理工具,为我们提供了强大的连接池功能和监控能力。本文将深入探讨Druid连接池的基本概念、特点,以及如何在实际应用中使用它进行高效的数据库连接管理。
1255 0
|
SQL 缓存 关系型数据库
连接池设置
连接池设置
118 0
|
Java 数据库连接 API
自定义数据库连接池
自定义数据库连接池
118 0
自定义数据库连接池
|
存储 缓存 固态存储
数据库连接池大小设置,你学会了吗
数据库连接池大小设置,你学会了吗
821 0