数据库连接池是什么?C3P0、Druid如何使用?

前言

本文讲述什么是连接池,连接池的作用,常见连接池C3P0、Druid如何使用.

一、连接池是什么?

连接池其实就是一个存放数据库连接的容器(集合)

作用:连接池的出现就是为了解决数据库连接频繁被创建和销毁造成资源浪费的问题。
原理:当系统初始化好后,连接池会被创建,它会申请一些连接对象,当用户来访问数据库时,会从连接池获取连接对象,用户访问完之后,会将连接对象归还给连接池,而不是直接销毁。
常见的连接池:C3P0、Druid

二、C3P0使用步骤

1.导包

C3P0包官网下载地址
Mysql包下载
在这里插入图片描述
C3P0下载在这里插入图片描述
mysql包下载
在这里插入图片描述
在这里插入图片描述

2.配置

官方文档
官方文档有教你怎么配,我们这里就直接配置最常用的就行
在这里插入图片描述常规配置(自取修改)

<c3p0-config>
    <!-- 使用默认的配置读取连接池对象 -->
    <default-config>
        <!--  连接参数 -->
        <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/db1?serverTimezone=UTC</property>
        <property name="user">root</property>
        <property name="password">root</property>
        <!-- 连接池参数 -->
        <!--初始化申请的连接数量-->
        <property name="initialPoolSize">5</property>
        <!--最大的连接数量-->
        <property name="maxPoolSize">10</property>
        <!--超时时间-->
        <property name="checkoutTimeout">3000</property>
    </default-config>

    <named-config name="otherc3p0">
        <!--  连接参数 -->
        <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/db1?serverTimezone=UTC</property>
        <property name="user">root</property>
        <property name="password">123</property>
        <!-- 连接池参数 -->
        <property name="initialPoolSize">5</property>
        <property name="maxPoolSize">8</property>
        <property name="checkoutTimeout">1000</property>
    </named-config>
</c3p0-config>

2.通过c3p0获取连接对象

在这里插入图片描述
代码(自取修改)

public class c3p0Demo {
    public static void main(String[] args) throws Exception{
        //1.创建数据库连接对象
        DataSource ds=new ComboPooledDataSource();
        //2.获取连接对象
        Connection conn=ds.getConnection();
    }
}

三、Druid使用步骤

1.导包

druid包下载
Mysql包下载
在这里插入图片描述
druid包下载
在这里插入图片描述

mysql包下载
在这里插入图片描述

2.配置

这里只做常用配置
在这里插入图片描述
代码自取修改

url=jdbc:mysql://localhost:3306/db1?serverTimezone=UTC
username=root
password=root
initialSize=5
maxActive=10
maxWait=3000
在这里插入代码片

3.通过Druid获取连接对象

在这里插入图片描述代码自取修改

public class DruidDemo {
    public static void main(String[] args) throws Exception{
        //1、加载配置文件
        Properties pro=new Properties();
        InputStream is=DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");
        pro.load(is);
        //2、获取数据库连接对象
        DataSource ds= DruidDataSourceFactory.createDataSource(pro);
        //3、获取连接
        Connection comm=ds.getConnection();
    }
}

总结:获取到连接对象就能对数据库进行操作了,这方面就不展开讲了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值