JDBC学习总结_3_数据库连接池DBCP

实际开发中 获得连接 或 释放资源 是非常消耗系统的两个过程. 而数据库在实际应用中用户的访问量是巨大的,每次操作数据库都需要 获得连接 释放资源,那对资源的浪费是可想而知的;
为了解决这个问题, 连接池顺应而生.其原理与线程池一致. 提前创建n个连接 并存入连接池容器,当你需要的时候从里面拿出去,完成操作以后通过close()方法归还连接.


每个数据库不一样,很多第三方软件机构它也会对java开发连接池,所以sun公司自己并不做.
依旧只是提供一个规范,一个接口.
javax.sql.DataSourse
DataSourse接口由驱动程序供应商实现.它有三种实现方式:

  • 基本实现: 生成标准的Connection对象
  • 连接池实现
  • 分布式事务实现

// 注意:这里面代码是不完整的, 静态代码块里的变量需要写一个方法从配置文件中获取,这里我就省略了
import org.apache.commons.dbcp.BasicDataSource;
/*
    创建一个使用数据库连接池JDBC工具类 
    *使用DBCP实现数据库的连接池
    *连接池配置,自定义类
    *最基本的四项配置()
    *对于数据库连接池其他配置,自定义
*/
public class JDBCUtils{
    // 创建BasicDataSource类对象
    private static BasicDataSource datasource = new BasicDataSource();

    // 静态代码块,对象BasicDataSource对象中的配置,自定义
    static{
        datasource.setDriverClassName(driverClass);
        datasource.setUrl(url);
        datasource.setUsername(username);
        datasource.setPassword(password);
        //对象连接池中的连接数量配置
        datasource.setInitialSize(10);  //初始化的连接数
        datasource.setMaxActive(8);     //最大连接数量
        datasource.setMaxIdle(5);           //最大空闲数
        datasource.setMinIdle(1);           //最小空闲数
    }

    // 定义静态方法,返回BasicDataSource类的对象
    public static DataSource getDatasource(){
        return datasource;
    }
}

回顾之前引入的 DBUtils

DBUtils三个核心功能介绍:

  • QueryRunner 中提供对sql语句操作的API.
  • ResultSetHandler接口, 用于定义 select 操作后, 怎样封装结果集.
  • DBUtils类, 它是一个工具类, 定义了关闭资源与事务处理的方法.

    QueryRunner类构造方法可以接收DataSourse接口实现类
    后面,调用方法updata,query,就不需要传递他们的Conection连接对象了(都有对应的重载方法)

实际开发中DButils 和 连接池是一起配合使用的.
到这里jdbc的学习总结告一段落, 后期会根据学习情况在增加或者修改.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值