C3P0数据库连接池

一、C3P0数据库

      在目前的开发中,C3P0是使用较多的开源数据库连接池之一,它性能高效,支持JDBC定义的规范,扩展性好,可以和Hibernate,Spring等开源框架整合使用,很受开发者欢迎。

      C3P0数据库连接池通过核心类ComboPooledDataSource实现DataSource接口,该类支撑着整个连接池的主要功能。它提供了充足的方法来实现对数据库连接池的配置和操作。

1、C3P0数据库连接池的使用

      使用C3P0数据库,主要对其核心类ComboPooledDataSource方法的调用,在此之前要多的一个可用的ComboPooledDataSource对象。通常情况下,获取该对象有两种方法。

      (1)直接创建ComboPooledDataSource对象并设置属性

                将C3P0连接池的jar包导入到工程的lib目录下。

                C3P0连接池jar包百度云下载链接:https://pan.baidu.com/s/17G0Lf9ZXfrMWLp5mQDeyuQ

                 提取码:nml5

package com.jdbc.pool;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class PoolC3p01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//核心类
		ComboPooledDataSource comboPooledDataSource=new ComboPooledDataSource();
		try{
		//基本四项设置
		comboPooledDataSource.setDriverClass("com.mysql.jdbc.Driver");
		comboPooledDataSource.setJdbcUrl("jdbc:mysql://localhost:3306/MF");
		comboPooledDataSource.setUser("root");
		comboPooledDataSource.setPassword("root");
		//设置
		//初始化连接数为10
		comboPooledDataSource.setInitialPoolSize(10);
		//设置最大连接数为20
		comboPooledDataSource.setMaxPoolSize(20);
		//设置最小连接数为3
		comboPooledDataSource.setMinPoolSize(3);
		//设置每次创建的连接数
		comboPooledDataSource.setAcquireIncrement(3);
		System.out.println(comboPooledDataSource.getConnection());
		}catch(Exception e){
			e.printStackTrace();
		}
	}

}

  运行结果:

最后一行输出了数据库连接池中的connection对象,说明了C3P0数据库连接池成功获得数据库连接对象。

(2)通过读取配置文件创建ComboPooledDataSource对象

          首先将数据库连接池的配置信息写入c3p0-config.xml文件中,然后通过ComboPooledDataSource类的构造方法读取配置信息并创建该类对象,最后调用该类对象的方法获取数据库连接。

<?xml version="1.0" encoding="UTF-8"?>

<c3p0-config>

	<default-config>

		<property name="driverClass">com.mysql.jdbc.Driver</property>

 		<property name="jdbcUrl">

    		jdbc:mysql://localhost:3306/MF

     	</property>

		<property name="user">root</property>

		<property name="password">itcast</property>

		<property name="checkoutTimeout">30000</property>

		<property name="initialPoolSize">10</property>

		<property name="maxIdleTime">30</property>

		<property name="maxPoolSize">100</property>

		<property name="minPoolSize">10</property>

		<property name="maxStatements">200</property>

	</default-config> 

	<named-config name="itcast">

		<property name="driverClass">com.mysql.jdbc.Driver</property>

		<property name="jdbcUrl">

           	jdbc:mysql://localhost:3306/MF

        </property>

		<property name="user">root</property>

		<property name="password">root</property>

		<property name="initialPoolSize">5</property>

		<property name="maxPoolSize">15</property>

	</named-config>

</c3p0-config>

测试类: 

package com.jdbc.pool;

import java.sql.SQLException;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class PoolC3p02 {

	public static void main(String[] args) throws SQLException {
		// TODO Auto-generated method stub
		ComboPooledDataSource dataSource=new ComboPooledDataSource("itcast");
		System.out.println(dataSource.getConnection());
	}

}

执行结果:成功连接到C3p0数据库连接池,输出了connecion对象 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值