DBCP数据库连接池的使用

DBCP的简单介绍:

   DBCP(DataBase Connection Pool)数据库连接池,是java数据库连接池的一种,由apache开发通过数据库连接池可以让程序自动管理数据库连接的释放和断开.

   DBCP(DataBase Connection Pool)数据库连接池,是Apache上的一个连接java连接池项目,也是tomcat使用的连接池组件.,单独使用DBCP需要2个包:commons-dbcp.jar和commons-pllo.jar.由于建立数据库连接是一个十分耗时.好资源的行为.所以通过连接池预先通数据库建立一些连接,放在内存中,,用用程序需要建立数据库连接时,直接到连接池中申请一个就行.使用完毕再放回到连接池中.

  在使用时,dbcp2和dbcp1对jdk版本的要求是不一样的.就是mysql-connector包需要使用5.0以上的.否则会报错.

  在使用dbcp时,其中有一个BasicDataSource类,使用这个类中的无参构造方法们可以实例化一个BasicDataSource对象,然后通过这个对象中的set方法和四个重要的拓展方法,进行连接数据库

连接数据库的基本参数设置:
1.setDriverClassName(String driverClassName) //数据库驱动的名称
2.setUrl(String url) //设置url参数  数据库的地址
3.setUsername(String username) //设置数据库连接用户名
4.setPassword(String password) //设置数据库连接密码

重要的拓展方法:
1.setMaxActive(int maxActive) //设置最大活动连接数
2.setInitialSize(int initialSize) //初始化连接数
3.setMaxIdle(int maxIdle) //设置最大空闲连接数
4.setMinIdle(int minIdle) //设置最小空闲连接数

name:表示你的连接池的名称也就是你要访问连接池的地址

auth:是连接池管理权属性,Container表示容器管理

type:是对象的类型

driverClassName:是数据库驱动的名称

url:是数据库的地址

username:是登陆数据库的用户名

password:是登陆数据库的密码

maxIdle,最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连
接将被标记为不可用,然后被释放。设为0表示无限制。 

       maxActive是最大激活连接数,这里取值为20,表示同时最多有20个数据库连 
    接。maxIdle是最大的空闲连接数,这里取值为20,表示即使没有数据库连接时依然可以保持20空闲的

      连接,而不被清除,随时处于待命状态。MaxWait是最大等待秒钟数,这里取值-1,表示无限等待,直到

      超时为止,也可取值9000,表示9秒后超时。


MaxActive,连接池的最大数据库连接数。设为0表示无限制。


maxWait ,最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。

简单的进行测试:

import org.apache.commons.dbcp2.BasicDataSource;

public class DbcpUtils {

    public BasicDataSource getDatasource(){
        BasicDataSource basicDataSource = new BasicDataSource();
        basicDataSource.setDriverClassName("com.mysql,jdbc.BasicDataSource");
        basicDataSource.setUrl("jdbc:mysql://localhost:3306/spring?characterEncoding=utf8");
        basicDataSource.setUsername("root");
        basicDataSource.setPassword("root");
        return basicDataSource;
    }
}

测试类:

import org.apache.commons.dbcp2.BasicDataSource;
import org.junit.Test;

public class MainTest {

    @Test
    public void dbcpTest(){
        DbcpUtils dbcpUtils = new DbcpUtils();
        BasicDataSource datasource = dbcpUtils.getDatasource();
        System.out.println(datasource);
    }
}

测试结果:

猜你喜欢

转载自www.cnblogs.com/qingmuchuanqi48/p/10542279.html