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

数据库连接池-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次之后就不会在获取了。

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

 

posted @ 2022-10-18 10:20  漁夫  阅读(75)  评论(0)    收藏  举报