连接池(二)开源的连接池技术(DBCP)

开源的连接池技术(DBCP)

Sun公司约定: 如果是连接池技术,需要实现一个接口!

    javax.sql.DataSource;

现有开源连接池:DBCP 、C3P0

DBCP连接池

  • DBCP 是 Apache 软件基金组织下的开源连接池实现,使用DBCP数据源,应用程序应在系统中增加如下两个 jar 文件:
    • Commons-dbcp.jar:连接池的实现
    • Commons-pool.jar:连接池实现的依赖库
  • Tomcat 的连接池正是采用该连接池来实现的。该数据库连接池既可以与应用服务器整合使用,也可由应用程序独立使用。
  • 核心类:BasicDataSource
    引入jar文件
/**
 * 硬编码方式实现连接池
 */
@Test
public void testDS() throws SQLException{
    // DBCP 连接池核心类
    BasicDataSource dataSource = new BasicDataSource();
    // 连接池参数配置
    dataSource.setUrl("jdbc:mysql:///test");
    dataSource.setDriverClassName("com.mysql.jdbc.Driver");
    dataSource.setUsername("root");
    dataSource.setPassword("root");
    dataSource.setInitialSize(3);   // 初始化连连接数
    dataSource.setMaxActive(6);     // 最大连接
    dataSource.setMaxIdle(3000);    // 
    // 获取连接
    Connection con = dataSource.getConnection();
    String sql = "delete from stu where id=?";
    PreparedStatement ps = con.prepareStatement(sql);
    ps.setInt(1, 1);
    ps.executeUpdate();
    // 关闭
    ps.close();
    con.close();

}
/**
 * 配置方式实现连接池
 *  依据property配置文件,创建数据源对象
 * @throws Exception 
 */
@Test
public void testDataSource() throws Exception{
    // 加载prop对象
    Properties prop = new Properties();
    // 获取文件流
    InputStream in = this.getClass().getResourceAsStream("ds.properties");
    // 加载配置文件
    prop.load(in);
    // 根据配置文件,直接创建数据源对象、
    DataSource dataSource = new BasicDataSourceFactory().createDataSource(prop);

    // 获取连接
    Connection con = dataSource.getConnection();
    String sql = "insert into stu(id,name) values(?,?)";
    PreparedStatement ps = con.prepareStatement(sql);
    ps.setInt(1, 1);
    ps.setString(2, "tom");
    ps.executeUpdate();
    // 关闭
    ps.close();
    con.close();
}

ds.properties

url=jdbc:mysql:///test
driverClassName=com.mysql.jdbc.Driver
username=root
password=root
initialSize=3
maxActive=6
maxIdle=3000
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值