JDBC - 学习7 -连接池C3P0、DBCP -- 获取Connection连接

10 篇文章 0 订阅

1. 连接池的简介

连接池: 为数据库建立一个缓冲池,预先在缓冲池中放入一定数量的Connection对象连接,使用时,直接从缓冲池中取就行,不用时放回到缓冲池中

连接池的优点
负责分配、管理、释放数据库连接
允许数据库重复使用Connection连接,而不是重新创建要给
常用连接池
DBCP:Tomcat服务自带,速度较快,不稳定
C3P0:速度较慢、稳定性还可以
Proxool:具有监控连接池状态,稳定性比C3P0差
Druid:阿里提供的,集齐上述三个连接池的所有优点

2. C3P0 - 连接池

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HyCDeVYE-1574125805829)(en-resource://database/9785:1)]

2.1 硬编码获取连接
public static Connection getConnection1() throws Exception{
    
    // 1. 获取数据库连接池
    ComboPooledDataSource cpds = new ComboPooledDataSource();
    
    // 2. 连接数据库
    cpds.setDriverClass("oracle.jdbc.driver.OracleDriver");
    cpds.setJdbcUrl("jdbc:oracle:thin:@localhost:1521:orcl");
    cpds.setUser("scott");
    cpds.setPassword("123456");

    // 3. 设置数据库初始的连接数
    cpds.setInitialPoolSize(10);

    // 4. 获取Conenction连接对象
    Connection conn1 = cpds.getConnection();

    System.out.println(conn1);

    return conn1;
}

2.2 配置文件进行获取连接对象

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lxgQvIwa-1574125805839)(en-resource://database/9777:1)]

public static Connection getConnection2() throws Exception{

    // 1. 获取数据库连接池
    ComboPooledDataSource cpds = new ComboPooledDataSource();
    
    // 2. 读取配置文件信息
    Properties p = new Properties();
    InputStream is = new FileInputStream("E:\\eclipse\\workspace\\学习\\src\\top\\linruchang\\connectionPool\\c3p0.properties");
    p.load(is);
    String driverClass = p.getProperty("driverClasss");
    String url = p.getProperty("url");
    String user = p.getProperty("user");
    String password = p.getProperty("password");
    String initialPoolSize = p.getProperty("initialPoolSize");

    // 3. 利用配置文件的信息进行连接数据库
    cpds.setDriverClass(driverClass);
    cpds.setJdbcUrl(url);
    cpds.setUser(user);
    cpds.setPassword(password);
    cpds.setIdentityToken(initialPoolSize);


    // 4. 获取Connection连接对象

    Connection conn = cpds.getConnection();

    System.out.println(conn);

    return conn;
}

3. DBCP - 连接池

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YVFNosjb-1574125805850)(en-resource://database/9783:1)]

3.1 硬编码获取连接
public static Connection getConnection1() throws SQLException {

    // 1. 创建数据库连接池
    BasicDataSource source = new BasicDataSource();

    // 2. 设置基本信息
    source.setDriverClassName("oracle.jdbc.driver.OracleDriver");
    source.setUrl("jdbc:oracle:thin:@localhost:1521:orcl");
    source.setUsername("scott");
    source.setPassword("123456");
    source.setInitialSize(10);

    // 3. 获取数据库连接池的Connection对象
    Connection conn = source.getConnection();

    System.out.println(conn);

    return conn;

}

3.2 配置文件获取连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SGkd2r5t-1574125805852)(en-resource://database/9779:1)]

public static Connection getConnection2() throws Exception{
    
    // 1. 获取配置文件
    Properties pro = new Properties();
    FileInputStream fis = new FileInputStream("E:\\eclipse\\workspace\\学习\\src\\top\\linruchang\\connectionPool\\dbcp.properties");
    pro.load(fis);;

    // 2. 加载配置文件到 数据源总
    BasicDataSource source = BasicDataSourceFactory.createDataSource(pro);
    
    // 3. 获取连接
    Connection conn = source.getConnection();

    System.out.println(conn);

    return conn;

}

4. Druid - 连接池

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DFwUmxDe-1574125805858)(en-resource://database/9787:1)]

4.1 硬编码获取连接
public static Connection getConnection1() throws SQLException {

    // 1. 获取数据源
    DruidDataSource source = new DruidDataSource();

    // 2. 设置数据源连接数据库的信息
    source.setDriverClassName("oracle.jdbc.driver.OracleDriver");
    source.setUrl("jdbc:oracle:thin:@localhost:1521:orcl");
    source.setUsername("scott");
    source.setPassword("123456");

    // 3. 获取连接
    Connection conn = source.getConnection();

    System.out.println(conn);

    return conn;
}

4.2 配置文件获取连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bYsrBqGs-1574125805862)(en-resource://database/9781:1)]

public static  Connection getConnection2() throws Exception {

    // 1. 获取配置文件
    Properties pro = new Properties();
    FileInputStream fis = new FileInputStream("E:\\eclipse\\workspace\\东软\\src\\top\\linruchang\\connectionPool\\druid.properties");
    pro.load(fis);

    // 2. 将配置文件加载到数据源中
    DataSource source = DruidDataSourceFactory.createDataSource(pro);

    // 3. 获取连接
    Connection conn = source.getConnection();

    System.out.println(conn);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值