Java IDEA c3p0配置

  • Post author:
  • Post category:java




(一)导入jar包

在这里插入图片描述

将第1,2个jar包导入libs目录下,同时,不要忘记导入数据库的驱动jar包(第三个)



(二)导入配置文件

在这里插入图片描述

代码:

<?xml version="1.0" encoding="utf-8"?>
<c3p0-config>
  <default-config>
  <!--   com.mysql.cj.jdbc.Driver -->
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/db2?serverTimezone=GMT%2B8&amp;useSSL=false</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.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/db2?serverTimezone=GMT%2B8&amp;useSSL=false</property>
    <property name="user">root</property>
    <property name="password">root</property>

    <property name="initialPoolSize">5</property>
    <property name="maxPoolSize">8</property>
    <property name="checkoutTimeout">1000</property>
  </named-config>
</c3p0-config>


注:


需要注意的是,我的mysql没有修改时区,所以需要在URL中加入

?serverTimezone=GMT%2B8


同时由于版本问题,所以还需要加入

useSSL=false

,可以根据自己需要适当增删。

另外,在xml文件中& 用

&amp;

来写。



(三)创建数据库连接池对象

DataSource ds = new ComboPooledDataSource();



(四)获取连接对象

Connection connection = ds.getConnection();



(五)查看结果

System.out.println(connection);

完整代码:

import com.mchange.v2.c3p0.ComboPooledDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

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


结果显示:


在这里插入图片描述


测试二:

对应配置文件中的内容

import com.mchange.v2.c3p0.ComboPooledDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
public class demo02c3p0 {
    public static void main(String[] args) throws SQLException {
        //获取DataSource
        DataSource ds = new ComboPooledDataSource();//此处什么都不传,是使用的默认配置
        //如果传入名字,使用的是配置文件中对应名字的文件
        for (int i = 1; i <= 11; i++) {//10个就会报错
            Connection connection = ds.getConnection();
            System.out.println(i+":"+connection);
            if (i==5){
                connection.close();
            }
        }
    }
/*
* 5:com.mchange.v2.c3p0.impl.NewProxyConnection@7ea9e1e2 [wrapping: com.mysql.cj.jdbc.ConnectionImpl@24fcf36f]
* 6:com.mchange.v2.c3p0.impl.NewProxyConnection@2b48a640 [wrapping: com.mysql.cj.jdbc.ConnectionImpl@24fcf36f]
* 可见 close() 是归还
*
* */
}



版权声明:本文为shaxu123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。