数据库连接池快速入门

为何要使用连接池

我们在日常进行数据库操作的时候,每一次都要申请资源,在使用完成之后释放资源。这种操作是非常浪费资源的做法,我们为了解决的这个问题,就引入了数据库连接池。

数据库连接池
概念:其实就是一个容器(集合),存放数据库连接的容器,
当系统初始化好后,容器被创建,容器会申请一些连接对象,存储在容器中,当用户来访问数据库时,从容其中获取连接对象,用户访问完毕之后,会将连接对象归还容器。
好处:

  1. 节约资源
  2. 高效

数据库连接池的实现
1.标准接口:DataSource javax.sql包下的
1.方法:
*获取连接:getConnection()
*归还连接:如果连接对象Connection是从连接池中获取的,那么调用Connection.close()方法,则不会关闭连接,而是归还连接到连接池。
2.一般我们不自己去实现他,由数据库厂商来实现
1.C3P0
2.Druid:由阿里巴巴提供的数据库连接池

C3P0数据库连接池的使用

1. 导入jar包

一共有两个jar包:
1.mchange-commons-java-0.2.11
2.c3p0-0.9.5.2

2. 定义配置文件

名称:c3p0.properties或者c3p0.xml

<?xml version="1.0" encoding="UTF-8"?>

<c3p0-config>
    <default-config>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/day09</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="mySource">
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/day09</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>
    </named-config>
</c3p0-config>

3. 创建核心对象,数据库连接池对象:

ComboPooledDataSource

4. 获取连接:
getConnection()

代码示例:

 //1.创建数据库连接池
        ComboPooledDataSource cpds = new ComboPooledDataSource();
        //2.获取连接
        try {
            con = cpds.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    System.out.println(con);

在这里插入图片描述

Druid数据库连接池
基本操作和C3P0相同:

1. 导入jar包

2. 定义配置文件

是properties文件,可以叫做任何的名称,放在任意的目录下

3.加载配置文件

InputStream is = DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");
Properties pro = new Properties();
pro.load(is);

4. 获取数据库连接池对象:通过工厂类来获取

DruidDataSourceFactory

5. 获取连接

DataSource dataSource = DruidDataSourceFactory.createDataSource(pro);
Connection conn = dataSource.getConnection();
System.out.println(conn);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值