JDBC之DBCP连接池下载,配置,使用

DBCP连接介绍

​ DBCP(DataBase connection pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要2个包:commons-dbcp2-2.11.0.jarcommons-logging-1.3.0.jarcommons-pool2-2.12.0.jar,由于建立传统数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。

​ Tomcat 的连接池正是采用该连接池来实现的。该数据库连接池既可以与应用服务器整合使用,也可由应用程序独立使用。Tomcat通过JAR包tomcat-dbcp.jar集成了连接池DBCP的功能,通过在context.xml中配置连接池的方式引入DBCP连接池,也可以在server.xml文件中配置全局的连接池。

DBCP jar包下载

需要jar包以及版本,MySql版本一定要与本地电脑的版本一致:
mysql-connector-j-8.0.33.jar
commons-dbcp2-2.11.0.jar
commons-logging-1.3.0.jar

commons-pool2-2.12.0.jar

一、DBCP jar官网下载路径如下:

commons-dbcp2-2.11.0.jar

commons-pool2-2.12.0.jar

commons-logging-1.3.0.jar

在这里插入图片描述

在这里插入图片描述

二、下载好 DBCP的jar包

在这里插入图片描述

三、将下载好的 jar 包导入到idea项目里面去

1、根据个人需要将 commons-logging-1.3.0.jarcommons-pool2-2.12.0.jarcommons-dbcp2-2.11.0.jar jar包文件复制到项目的 lib 路径下。

2、将lib文件夹 “添加为库” 或 将添加的jar包 “添加为库”(必要操作)

DBCP配置及使用(这里以MySql数据库演示)

一、DBCP配置及使用(使用配置文件初始化连接池配置)

1、properties配置文件

我用的是配置 文件名.properties 文件的方式,文件名随意。在项目的 src 目录下新建就行。:

在这里插入图片描述

配置文件内容:

#不多解释,这是基本的驱动加载
DriverClassName=com.mysql.cj.jdbc.Driver

#驱动注册
url=jdbc:mysql://localhost:3306/20231124db

#要连接的数据库用户名
username=root

#要连接的数据库密码
password=sasa

#设置是否自动提交,默认为true
defaultAutoCommit=true

#是否为只读 默认为false
defaultReadOnly=false

#初始化数据池拥有的连接数量
initialSize=10

#池中最多可容纳的活着的连接数量,当达到这个数量不在创建连接
maxActive=20

#最大空闲等待,也就是连接等待队列超过这个值会自动回收未使用的连接,直到达到20
maxIdle=20

#最小空闲等待 ,数据池中最少保持的连接
minIdle=5

#最大等待时间,超过这个时间等待队列中的连接就会失效
maxWait=10000

#从池中取出连接时完成校验 ,验证不通过销毁这个connection,默认为true,
testOnBorrow=true

#放入池中时完成校验,默认我fasle
testOnReturn=false

#校验语句,必须是查询语句,至少查询一列,设置了它onBorrow才会生效
validationQuery=select 1

#校验查询时长,如果超过,认为校验失败
validationQueryTimeout=1

#清除一个连接时是否需要校验
testWhileIdle=false

#DBCP默认有个回收器Eviction,这个为设置他的回收时间周期
timeBetweenEvictionRunsMillis=1

#Eviction在运行时一次处理几个连接
numTestsPerEvictionRun=3

#是否缓存PreparedStatements
poolPreparedStatements=true

#缓存PreparedStatements的最大个数
maxOpenPreparedStatements=1

2、连接MySql数据库操作

public static void main(String[] args) {
    try {
        //加载数据库连接池配置
        Properties properties = new Properties();
       	properties.load(Main.class.getClassLoader().getResourceAsStream("database.properties"));
        //创建BasicDataSource数据源
        BasicDataSource dataSource = BasicDataSourceFactory.createDataSource(properties);
        //从数据源获取连接,并且进行sql语句查询
        ResultSet rs = dataSource.getConnection().prepareStatement("SELECT COUNT(0) FROM 20231124DB.depttab").executeQuery();
        //判断是否成功获取到连接
        if (rs.next()) {
            System.out.println("连接成功");
        } else {
            System.out.println("连接失败");
        }
        //释放连接到连接池
        rs.close();
    }catch (Exception e){
        System.out.println(e.getMessage());
    }
}

运行结果:
在这里插入图片描述

二、HikariCP 配置及使用(使用代码来初始化连接池配置)

1、连接MySql数据库操作

public static void main(String[] args) throws SQLException {
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/20231124db");
        dataSource.setUsername("root");
        dataSource.setPassword("sasa");
        dataSource.setInitialSize(10);
        dataSource.setMaxTotal(20);
        dataSource.setMaxIdle(5);
        dataSource.setMinIdle(2);

        ResultSet rs = dataSource.getConnection().prepareStatement("SELECT COUNT(0) FROM 20231124DB.depttab").executeQuery();
        if (rs.next()) {
            System.out.println("连接成功");
        } else {
            System.out.println("连接失败");
        }
        rs.close();
    }

运行结果:

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用DBCP连接池需要在配置文件中设置以下属性: 1. 驱动类名(driverClassName):数据库驱动程序的名称,例如com.mysql.jdbc.Driver。 2. 数据库连接URL(url):连接到数据库的URL,例如jdbc:mysql://localhost:3306/test。 3. 数据库用户名(username):连接到数据库所需的用户名。 4. 数据库密码(password):连接到数据库所需的密码。 5. 初始连接数(initialSize):连接池在启动时创建的初始连接数。 6. 最小空闲连接数(minIdle):连接池中保留的最小空闲连接数。 7. 最大活动连接数(maxActive):连接池中同时可分配的最大活动连接数。 8. 最大等待时间(maxWait):等待连接池分配连接的最长时间(以毫秒为单位)。 9. 连接池名(poolName):连接池的名称。 下面是一个示例配置文件: ```xml <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/test" /> <property name="username" value="root" /> <property name="password" value="password" /> <property name="initialSize" value="5" /> <property name="minIdle" value="2" /> <property name="maxActive" value="20" /> <property name="maxWait" value="10000" /> <property name="poolPreparedStatements" value="true" /> <property name="maxOpenPreparedStatements" value="100" /> <property name="poolName" value="MyDBCP" /> </bean> ``` 在上面的配置中,我们使用了org.apache.commons.dbcp.BasicDataSource类,它是DBCP连接池的实现类。我们设置了MySQL数据库的驱动程序名称、URL、用户名和密码。我们还设置了连接池的一些属性,例如初始连接数、最小空闲连接数、最大活动连接数和最大等待时间。最后,我们指定了连接池的名称为MyDBCP

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值