首页 > 数据库 >数据库连接池-c3p0-基本使用、配置演示

数据库连接池-c3p0-基本使用、配置演示

时间:2022-10-18 10:37:12浏览次数:44  
标签:演示 对象 数据库 c3p0 ComboPooledDataSource mysql 连接池

数据库连接池-c3p0-基本使用

步骤:

  导入jar包 (3个) c3p0-0.9.5.2.jar   mchange-commons-java-0.2.11.jar   mysql-connector-java-5.1.47.jar

  定义配置文件:

    名称:c3p0.properties或者c3p0-config.xml

    路径:直接将文件放在src目录下即可

  创建核心对象 数据库连接池对象 ComboPooledDataSource

  获取连接:getConnection

  打印输出

 

 

在src下创建xml

 

<c3p0-config>
    <!-- 使用默认的配置读取连接池对象-->
    <default-config>
        <!-- 连接参数-->
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/db4</property>
        <property name="user">root</property>
        <property name="password">root</property>

        <!-- 连接池参数-->
        <!-- 初始化申请的连接数量-->
        <property name="initialPoolSize">5</property>
        <!-- 最大的连接数量-->
        <property name="maxPoolSize">10</property>
        <!-- 超时时间-->
        <property name="checkoutTimout">3000</property>
    </default-config>
    <named-config name="otherc3p0">
        <!-- 连接参数-->
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/db4</property>
        <property name="user">root</property>
        <property name="password">root</property>

        <!-- 连接池参数-->
        <!-- 初始化申请的连接数量-->
        <property name="initialPoolSize">5</property>
        <!-- 最大的连接数量-->
        <property name="maxPoolSize">8</property>
        <!-- 超时时间-->
        <property name="checkoutTimout">1000</property>
    </named-config>
</c3p0-config>

 

创建c3p0Demo类

 public static void main(String[] args) throws SQLException {
        /**
         * 创建数据库连接池对象
         */
        ComboPooledDataSource ds = new ComboPooledDataSource();
        /**
         * 获取连接对象
         */
        Connection connection = ds.getConnection();
        /**
         * 打印
         */
        System.out.println(connection);
    }

 

数据库连接池-c3p0-配置演示

在xml中设置的连接对象不能超过十个,超过会报错,有一个方法可以解决这个问题

 

public static void main(String[] args) throws SQLException {
        /**
         * 创建数据库连接池对象
         */
        ComboPooledDataSource ds = new ComboPooledDataSource();
        /**
         * 获取连接对象
         */
        for (int i = 1; i <=11 ; i++) {
            Connection connection = ds.getConnection();
            System.out.println(i+":"+connection);

            if (i == 5){
                connection.close();//归还连接到连接池中
            }
        }

    }

 

 

 

可以看到第五个和第七个租后的连接名一样,因为咱们在代码中写到 ==5 之后就返回到连接池对象。就是第五个数用完之后就归还给连接池对象,然后第七个数又用到了。这样即可

 

 

在配置文件中有两个参数,一个是默认的,一个是自己添加的,上面演示的是默认的,现在演示一下自己添加的

只有8个连接对象

 

 

可以看到,咱们设置的是获取十次连接对象,这个获取到8次之后就不会在获取了。

以后咱们一般只会用到默认的,这个只是演示一下

 

标签:演示,对象,数据库,c3p0,ComboPooledDataSource,mysql,连接池
From: https://www.cnblogs.com/yuzong/p/16801676.html

相关文章

  • day49-JDBC和连接池05
    JDBC和连接池0511.BasicDAO先来分析一个问题前面我们使用了Apache-DBUtils和Druid简化了JDBC开发,但仍存在以下不足:SQL语句是固定的,不能通过参数传入,通用性不好,需要......
  • 10个python经典小游戏(上)-五一嗨起来(动图演示+源码分享)
    这些游戏你玩过几个?​​1.贪吃蛇​​​​2.吃豆人​​​​3.加农炮​​​​4.四子棋​​​​5.FlyBird​​​​6.记忆:数字对拼图游戏(欢迎挑战!用时:2min)​​​​7.乒乓球​......
  • day48-JDBC和连接池04-2
    JDBC和连接池04-210.数据库连接池10.5Apache-DBUtils10.5.1resultSet问题先分析一个问题在之前的程序中,执行sql语句后返回的结果集存在如下问题:关闭connection后......
  • 数据库连接池-概述、实现介绍
    数据库连接池-概述概念:其实就是一个容器,存放数据库连接的容器。当系统初始化后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完......
  • C/C++数据结构算法动态演示系统
    C/C++数据结构算法动态演示系统《数据结构与算法基础》课程项目课程项目题目:数据结构算法动态演示系统设计要求:设计并建立一套数据结构算法的动态演示系统。利用可......
  • io流-字节输出流和FileIntputStream介绍、代码演示
    字节输出流InputStream抽象类是表示字节输出流的所有类的超类可以读取字节信息到内存中它定义了自己输入流的基本共性功能方法InputStream是隶属于java.io包下publ......
  • 数据库连接池
    数据库连接---执行完毕---释放连接--释放十分浪费系统资源池化技术:准备一些预先的资源,过来就连接预先准备好的 最小连接数:10最大连接数:15等待超时:100ms ......
  • day48-JDBC和连接池04
    JDBC和连接池0410.数据库连接池10.1传统连接弊端分析传统获取Connection问题分析传统的JDBC数据库连接使用DriverManager来获取,每次向数据库建立连接的时候都要将......
  • C++二叉树动画演示
    C++二叉树动画演示题目2:基于前序、中序、后序序列构造二叉树需求:1、任意输入前序+中序序列或者中序+后序序列,生成二叉树,请使用三叉链表,在构造链表的过程中同步更新每......
  • 云演示
    创作:模型在SketchUp中下载的,将模型导入,建造场景,调整特效,录制帧动画。在Twinmotion中生成云演示,上传至Twinmotion网站,最后生成链接和密码。链接:​​​​https://twinmotion.......