java第三方连接池_四、Java持久化基础-第三方数据库连接池:C3P0

第三方数据库连接池:C3P0的使用

?

?????? 目前,在实际开发中存在很多流行的性能优良的第三方数据库连接池,我不用费时费力的去写一个连接池而且还得考虑性能和稳定性等因素,既然有现成的为什么不用呢。来试试C3P0连接池的使用:

一、下载并导入C3P0的jar包,下载地址:http://cn.jarfire.org/c3p0.html

?

二、配置数据源,有三种方法:

?

1、通过set方法手动配置

class="java">ComboPooledDataSource cpds = new ComboPooledDataSource();

cpds.setDriverClass(props.getProperty("driverClass"));

cpds.setJdbcUrl(props.getProperty("jdbcUrl"));

cpds.setUser(props.getProperty("user"));

cpds.setPassword(props.getProperty("password"));

?

2、配置默认的属性文件c3p0.properties(既然是默认当然文件名不能随意更改)

配置如下:

c3p0.driverClass=com.mysql.jdbc.Driver

c3p0.jdbcUrl=jdbc:mysql://localhost:3306/jdbc

c3p0.user=root

c3p0.password=java

...

在程序中初始化数据化只需要调用:ComboPooledDataSource cpds = new ComboPooledDataSource();它会自动对属性文件进行解析。

?

3、类路径下配置一个默认的xml配置文件:c3p0-config.xml

?

?

??????这种方式和第二种方式类似,但是利用配置文件有一个好处就是支持多数据源的配置,提供default-config和named-config两种配置方式例如:

//配置MySQL和Oracle两种数据源的配置

com.mysql.jdbc.Driver

jdbc:mysql://localhost:3306/day16

root

root

10

30

20

5

200

oracle.jdbc.driver.OracleDriver

jdbc:oracle:thin:@127.0.0.1:1521:ORCL

scott

tiger

50

100

50

1000

0

60

5

default-config表示默认的数据源配置,named-config表示自定义配置数据源,调用默认数据源和第二种方式一样,如果调用自定义数据源只需在构造方法里传递自定义数据源名即可,如上面name中的"oracle":

ComboPooledDataSource cpds = new ComboPooledDataSource(“oracle”);

?

演示代码:

import java.sql.Connection;

import java.sql.SQLException;

import com.mchange.v2.c3p0.ComboPooledDataSource;

/**

* C3P0连接池类

* @author Administrator

*

*/

public class DBManager {

private static final DBManager dbm = new DBManager();

static ComboPooledDataSource cpds = new ComboPooledDataSource("oracle");

private Connection conn = null;

public DBManager(){}

/**

* 获取连接

* @return

*/

public synchronized Connection getConnection(){

try {

conn = cpds.getConnection();

} catch (SQLException e) {

e.printStackTrace();

}

return conn;

}

//观察当前连接状态(测试用)

public synchronized void getInfo() throws Exception{

System.out.println(cpds.getMaxPoolSize());// 最大连接数

System.out.println(cpds.getMinPoolSize());// 最小连接数

System.out.println(cpds.getNumBusyConnections());// 正在使用连接数

System.out.println(cpds.getNumIdleConnections());// 空闲连接数

System.out.println(cpds.getNumConnections());// 总连接数

}

}

?

?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值