c3p0连接池的使用

利用c3p0连接池获取数据库连接,即不再通过DriverManager的getConnection(url,user,password)方法获取connection,而是通过c3p0数据源的类来获取连接,可分为两种情况,用或者不用配置文件:

1.不用配置文件,采用硬编码的形式设置连接池参数:

导入c3p0的jar包:c3p0-0.9.5.1.jar以及mchange-commons-java-0.2.1.jar,如果要连接mysql数据库,则要导入mysql-connector-java-5.1.28-bin.jar;如果要连接oracle数据库,则要导入ojdbc6.jar包。

java文件代码为:

ComboPooledDataSource dataSource = new ComboPooledDataSource();//此处不能转为DataSource接口类型,因为该接口没有操作连接属性的set、get方法,就无法采用                                                                    //硬编码设置连接池属性
dataSource.setDriverClass("com.mysql.jdbc.Driver");// 指定连接的是哪个数据库
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test");// 指定连接的数据库的地址
dataSource.setUser("root");
dataSource.setPassword("123");
dataSource.setAcquireIncrement(5);
dataSource.setInitialPoolSize(20);
dataSource.setMinPoolSize(2);
dataSource.setMaxPoolSize(50);
System.out.println(dataSource);
Connection con = dataSource.getConnection();
System.out.println(con);
// 建表语句是:create table c3p0test(username varchar(255),password varchar(255));
String sql = "insert into c3p0test values (?,?)";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, "koushr");
ps.setString(2, "1540379851");
ps.execute();
2.利用c3p0配置文件:

首先还是导jar包(同上),其次在src路径下加入c3p0-config.xml文件,注意文件名一定要是这个,里面配置了(初始大小,最小空闲连接数,增量,最大空闲连接数,最大连接数,最大的等待时间等)池参数。注意,粘贴好后需要立即更改要访问的数据库名,这一步最容易忘记。具体池参数则看具体项目更改。

c3p0-config.xml文件内容是:

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
	<!-- 默认配置,此处默认配置是mysql数据库的配置 -->
	<default-config>
		<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
		<property name="driverClass">com.mysql.jdbc.Driver</property>
		<property name="user">root</property>
		<property name="password">123</property>
		<property name="acquireIncrement">3</property>
		<property name="initialPoolSize">10</property>
		<property name="minPoolSize">2</property>
		<property name="maxPoolSize">10</property>
	</default-config>
	<named-config name="oracle-config">
		<property name="user">scott</property>
		<property name="password">123</property>
		<property name="driverClass">oracle.jdbc.OracleDriver</property>
		<property name="jdbcUrl">jdbc:oracle:thin:@localhost:1521:orcl
		</property>
		<property name="acquireIncrement">3</property>
		<property name="initialPoolSize">10</property>
		<property name="minPoolSize">2</property>
		<property name="maxPoolSize">10</property>
	</named-config>
</c3p0-config>
java文件代码:
DataSource dataSource = new ComboPooledDataSource();      // 无参代表获取的是c3p0-config.xml文件中default-config的配置,如果想获取其他配置,可以传入配置名                                                          //(string类型)来指定获取的是哪个配置
		                                         // 此处可以转为DataSource类型,因为此处不用硬编码设置连接属性
System.out.println(dataSource);
Connection con = dataSource.getConnection();
System.out.println(con);
// 建表语句是:create table c3p0test(username varchar(255),password varchar(255));
String sql = "insert into c3p0test values (?,?)";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, "koushr");
ps.setString(2, "1540379851");
ps.execute();

备注:ComboPooledDataSource类的层次结构如下,它实现了DataSource接口。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值