有关数据库连接池c3p0

一、什么是连接池

(一)概念及原理

即一个容器(集合),存放数据库连接的容器。
当系统初始化好后,容器被创建,容器中会申请一些连接对象。当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。

在这里插入图片描述

(二)优点
  1. 节约资源
  2. 用户访问高效

二、数据库连接池步骤

  1. 导入jar包:
      a.  c3p0-版本.jar
      b.  mchange-commons-java-版本.jar
  2. 定义配置文件:
      a.  名称:c3p0.properties或c3p0-config.xml
      b.  直接将文件放在src目录下即可
  3. 创建核心对象(即数据库连接池对象) ComboPooledDataSource
  4. 获取连接:getConnection

三、具体代码

有关c3p0-config.xml部分:

<?xml version="1.0" encoding="utf-8"?>
<c3p0-config>
<!--  使用默认的配置读取连接池对象-->
  <default-config>
<!--    连接参数-->
    <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost/c3p0?characterEncoding=utf-8&amp;useSSL=false&amp;serverTimezone=Asia/Shanghai</property>
    <property name="user">root</property>
    <property name="password">2019012660Moon</property>
<!--    连接池参数-->
    <!--初始化申请的连接数量,例如,此次申请5个-->
    <property name="initialPoolSize">5</property>
    <!--最大的连接数量,例如,此次连接池最多只有10个连接对象-->
    <property name="maxPoolSize">10</property>
    <!--超时时间,如果找不到连接对象,3000ms后报错误信息-->
    <property name="checkoutTimeout">3000</property>
      <property name="acquireIncrement" value="10"/>
  </default-config>

  <named-config name="otherc3p0">
  </named-config>
</c3p0-config>

Java代码部分:

package com.c3p0;

import com.mchange.v2.c3p0.ComboPooledDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

public class C3P0Demo1 {
    public static void main(String[] args) {
        // 创建数据库连接池对象
        DataSource ds=new ComboPooledDataSource();
        // 获取连接对象
        Connection conn = null;
        try {
            conn=ds.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        System.out.println(conn);
    }
}

四、有关SQLException

在第一次连接数据库连接池时,出现了SQLException错误,在网上也找了很多解决方法但都没有成功,后来发现在xml文件中应加上:
在这里插入图片描述
即可成功连接数据库连接池。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值