java dbcp c3p0_数据库连接池(dbcp,c3p0)的简单实现

dbcp数据库连接池

就性能而言,1.4版本的连接池性能比1.2版本高,跟c3p0差不多

使用此数据库连接池必须导入commons-dbcp,commons-pool包,以下是其实现方法:

import java.sql.SQLException;

import java.sql.Statement;

import org.apache.commons.dbcp.BasicDataSource;

//dbcp数据库连接池连接方法

public class BasicDbcp {

public static void main(String[] args) throws SQLException {

String url="jdbc:mysql://localhost:3306/test";

String dr="com.mysql.jdbc.Driver";

//实例化数据源对象

BasicDataSource ds=new BasicDataSource();

//设置属性

ds.setDriverClassName(dr);

ds.setUrl(url);

ds.setUsername("root");

ds.setPassword("123");

System.err.println("被包裹的数据连接(内部私有类):"+ds.getConnection().getClass());

Statement sta= ds.getConnection().createStatement();

ResultSet rs= sta.executeQuery("select * from user");

while(rs.next()){

System.out.println(rs.getString("name"));

}

rs.close();

sta.close();

ds.close();

}

}

同时也可以在属性文件(properties)中存放基本属性,然后再在其中获取:

import java.sql.Connection;

import java.sql.SQLException;

import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSourceFactory;

//根据配置文件来连接数据库

public class BasicDbcpProperties {

private static DataSource ds=null;

public BasicDbcpProperties(){

//声明资源文件对象

Properties pro=new Properties();

try {

//load方法来获取此文件

//以流的方式将此文件传送过来

pro.load(this.getClass().getResourceAsStream("jdbc.properties"));

//以 工厂类来创建这个DataSource资源

ds=BasicDataSourceFactory.createDataSource(pro);

Connection con=ds.getConnection();

System.out.println(con);

con.close();

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public static void main(String[] args) throws SQLException {

//初始化10个连接之后,不会再自动增加连接,因此此处没有设计好

Connection con=null;

long start=System.currentTimeMillis();

new BasicDbcpProperties();

for(int i=0;i<17;i++){

con=ds.getConnection();

System.out.println(con);

}

long end=System.currentTimeMillis();

System.out.println(end-start);

}

}

2.C3P0数据库连接池

只需要导入C3P0-0.9.jar包即可

import java.beans.PropertyVetoException;

import java.sql.Connection;

import java.sql.SQLException;

import com.mchange.v2.c3p0.ComboPooledDataSource;

import com.mchange.v2.c3p0.DataSources;

public class C3PODemo {

public static void main(String[] args) throws PropertyVetoException, SQLException {

//获取DataSource

ComboPooledDataSource ds=new ComboPooledDataSource();

ds.setDriverClass("com.mysql.jdbc.Driver");

ds.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/wj");

ds.setUser("root");

ds.setPassword("root");

ds.setInitialPoolSize(3);

ds.setMinPoolSize(10);

ds.setMinPoolSize(5);

Connection con=ds.getConnection();

System.out.println(con);

System.err.print(con);

DataSources.destroy(ds);

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值