JDBC中c3p0数据库连接池的实现

一、下载驱动

  • 下载链接:https://pan.baidu.com/s/1P0Kf...
    提取码:c3p0
  • 清单:

    • c3p0-0.9.5.2.jar
    • mchange-commons-java-0.2.11.jar
    • mchange-commons-java-0.2.15.jar
    • mysql-connector-java-8.0.11.jar

二、导入驱动

  1. 点击File - Project Structure
    JDBC中c3p0数据库连接池的实现_第1张图片
  2. 如图,导入jar包:
    JDBC中c3p0数据库连接池的实现_第2张图片

三、编写代码

实现方式一:set方法

编写测试方法:

@Test
public void testGetConnection1() throws Exception {

    //获取C3P0数据库连接池
    ComboPooledDataSource cpds = new ComboPooledDataSource();
    cpds.setDriverClass("com.mysql.jdbc.Driver");
    cpds.setJdbcUrl("jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC");
    cpds.setUser("mysql数据库账号");
    cpds.setPassword("mysql数据库密码");

    //设置初始数据库连接池数
    cpds.setInitialPoolSize(10);

    Connection conn = cpds.getConnection();
    System.out.println(conn);

    conn.close();
}

请自行修改数据库名mysql数据库账号mysql数据库密码处的内容。

运行该测试方法,若得到以下输出,则成功:JDBC中c3p0数据库连接池的实现_第3张图片

如果不成功,很可能是因为setJdbcUrl中没有加入时区的参数(见参考1):serverTimezone=UTC

对于mysql 8.0以上的mysql数据库如果不成功,可以尝试使用我在步骤一提供下载的驱动jar包,低版本的c3p0并不适用mysql 8.0以上。

实现方式二:配置xml文件

  1. 新建文件c3p0-config.xml(文件名只能是这个)。
    对于IDEA,请将xml文件放在resources文件夹下(见参考2)。
    对于Eclipse,请将xml文件放在src文件夹下。
  2. 编写xml文件内容:

    
    
     
    
         
         com.mysql.jdbc.Driver
         jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
         mysql数据库账号
         mysql数据库密码
    
         
         50
         10
         10
         100
         50
         2
    
     
    

    与方式一类似,请自行修改数据库名mysql数据库账号mysql数据库密码处的内容。
    对于xml文件,对于setJdbcUrl中加入的参数,不应该使用"&"进行分隔,而应该使用"&"进行分隔。

  3. 编写测试方法:

    @Test
    public void testGetConnection2() throws Exception {
    
        //获取C3P0数据库连接池
        ComboPooledDataSource cpds = new ComboPooledDataSource("helloc3p0");
            //此处与xml文件中内的name保持一致即可
    
        Connection conn = cpds.getConnection();
        System.out.println(conn);
        conn.close();
    }

    运行测试方法,得到方式一中的输出则成功。

参考

  1. java.sql.SQLException: Connections could not be acquired from the underlying database!
  2. IDEA中web项目c3p0-config.xml文件的配置及存放目录

你可能感兴趣的:(驱动jdbcc3p0)