两种开源的数据源---C3P0和DBCP

前提概要:
    c3p0是一种开源的数据源,也是hibernate推荐使用的数据源。这里我们只使用应用程序单独测试下这两种数据源,有兴趣的同学可以整合下服务器再测试下这两种数据源。dbcp也是一种开源的数据源,不过性能上并没有c3p0那样好,所以我们一般推荐使用c3p0。我们通常说的连接池是包含在数据源中,数据源通常包含连接池和连接池管理。

下面根据eg测试下这两种数据源单独在应用程序中的具体使用。 在文章的最后,我们附上这两种数据源的jar文件。
1.c3p0

工具类:

import java.beans.PropertyVetoException;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class JdbcC3p0 {

public static ComboPooledDataSource getDataSource() {

ComboPooledDataSource ds = new ComboPooledDataSource();
try {
ds.setDriverClass("com.mysql.jdbc.Driver"); //加载驱动 
ds.setJdbcUrl("jdbc:mysql://localhost:3306/test"); //数据库连接的url
ds.setUser("root"); //用户名
ds.setPassword("root"); //密码
ds.setMaxPoolSize(20);//最大连接数
ds.setMinPoolSize(5); //最小
ds.setInitialPoolSize(10); //初始连接数
ds.setMaxStatements(200); //可缓存的最大statement对象
} catch (PropertyVetoException e) {
e.printStackTrace();
}

return ds;
}
}

2 .dbcp数据源

工具类:

import java.sql.SQLException;

import org.apache.commons.dbcp.BasicDataSource;


public class JdbcPool {

public static BasicDataSource getDataSource() throws SQLException {
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver"); //加载驱动
ds.setUrl("jdbc:mysql://localhost:3306/test"); //数据库连接的url
ds.setUsername("root"); //数据库用户名
ds.setPassword("root"); //数据库用户的密码
ds.setInitialSize(5); //初始连接数
ds.setMaxActive(20); //最大连接数
ds.setMinIdle(2); //空闲连接数
return ds;
}
}

测试主类:

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Test {

public static void main(String[] args) throws Exception {
Connection conn = JdbcC3p0.getDataSource().getConnection(); //使用c3p0连接池
//Connection conn =JdbcPool.getDataSource().getConnection(); //使用dbcp连接池
String sql = "select * from person";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while(rs.next()){
System.out.println(rs.getInt(1)+","+rs.getString(2));
}
conn.close(); //归还连接池
}

}    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值