数据库连接池的使用方法

数据库连接池

目的:解决建立数据库连接耗费资源和时间很多的问题,提高性能。
数据库连接池,用池来管理Connection,这可以重复使用Connection。有了池,所以我们就不用自己来创建Connection,而是通过池来获取Connection对象。当使用完Connection后,调用Connection的close()方法也不会真的关闭Connection,而是把Connection“归还”给池。池就可以再利用这个Connection对象了。这个池要等到Web服务器停止,或应用程序彻底结束时,才会直正销毁。池销毁之前,池会让池中每个Connection对象调用close()方法来关闭自己。

编写标准的数据源
自定义数据库连接池要实现javax.sql.DataSource接口,一般都叫数据源。

市场上流行的JDBC数据库连接池实现:
1.DBCP(早期)
2.C3P0(今)

DBCP

DBCP:Apache推出的Database Connection Pool
使用步骤:
1、添加jar包 commons-dbcp-1.4.jar commons-pool-1.5.6.jar commons-collections.jar mysql-connector-java-5.1.7-bin.jar
2、添加属性资源文件
3、编写数据源工具类

/**
 * DBCP数据库连接池的使用
 */
public class Demo01 {
    private static BasicDataSource basicDataSource = new BasicDataSource();
    static{
        //设置数据库连接池基本属性
        basicDataSource.setDriverClassName("com.mysql.jdbc.Driver");
        basicDataSource.setUrl("jdbc:mysql://127.0.0.1:3306/jdbc");
        basicDataSource.setUsername("root");
        basicDataSource.setPassword("123");
        //设置数据库连接池扩展属性
        basicDataSource.setInitialSize(10);
        basicDataSource.setMaxActive(10);
        basicDataSource.setMaxIdle(5);
    }
    /**
     * 获取数据库连接
     */
    public Connection getConnection() throws SQLException{
        try {
            return basicDataSource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
            throw e;
        }
    }
}

DBCP的配置:
//基本配置
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbc
username=root
password=root

//初始化池大小,即一开始池中就会有10个连接对象,默认值为0
initialSize=0

//最大连接数
maxActive=8

//最大空闲连接
maxIdle=8

//最小空闲连接,默认值为0
minIdle=0

//最大等待时间,默认值为-1,表示无限期等待,不会抛出异常。
maxWait=-1

//连接的默认提交方式,默认值为true
defaultAutoCommit=true

//连接是否为只读连接,如果没有指定这个属性值,那么是否为只读连接,这就由驱动自己来决定了。即Connection的实现类自己来决定!
defaultReadOnly=true

//指定事务的事务隔离级别
可选值:NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE
如果没有指定,那么由驱动中的Connection实现类自己来决定
defaultTransactionIsolation=REPEATABLE_READ

C3P0

C3P0也是开源免费的连接池!实现类:ComboPooledDataSource
使用步骤:
1、添加jar包,导入 c3p0-0.9.1.2.jar
mysql-connector-java-5.1.7-bin.jar
2、编写配置文件c3p0-config.xml,c3p0的配置文件名必须为c3p0-config.xml,并且必须放在src路径下。
3、编写工具类

/**
 * C3P0数据库连接池的使用方式
 */
public class Demo{
    /**
     * 自动加载/src/c3p0-config.xml文件
     */
    private static ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource("oracle-config");
    /**
     * 获取数据库连接
     */
    public Connection getConnection() throws SQLException{
        try {
            return comboPooledDataSource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
            throw e;
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值