java之dbcp连接池介绍和使用方法 简单易懂!!!
2023-12-21 00:55:59
一、dbcp连接池介绍
DBCP(DataBase connection pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要2个包:commons-dbcp.jar 和 commons-pool.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。
二、导入的jar包
一些为直接下载,一些去官网下载
https://dlcdn.apache.org//commons/pool/binaries/commons-pool2-2.12.0-bin.zip
https://dlcdn.apache.org//commons/dbcp/binaries/commons-dbcp2-2.11.0-bin.zip
https://dlcdn.apache.org//commons/logging/binaries/commons-logging-1.3.0-bin.zip
三、代码演示
Properties配置文件
# url
url=jdbc:mysql://localhost:3306/studentdb
driverClassName=com.mysql.cj.jdbc.Driver
# 用户名
username=root
# 密码
password=sasa
# 初始连接数
initialSize=10
# 最大连接
maxActive=30
# 超时时间
maxWait=3000
使用连接池
package DBCP;
import org.apache.commons.dbcp2.BasicDataSource;
import org.apache.commons.dbcp2.BasicDataSourceFactory;
import org.junit.Test;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Properties;
public class demo1 {
@Test
public void testDBCP() throws IOException, SQLException {
// 创建一个Properties对象
Properties properties = new Properties();
// 创建一个FileInputStream对象,用于读取src\\dbcp.properties文件
FileInputStream fileInputStream
= new FileInputStream("src\\dbcp.properties");
// 使用FileInputStream对象读取文件,并将文件内容加载到properties对象中
properties.load(fileInputStream);
// 使用properties对象创建一个BasicDataSource对象
BasicDataSource dataSource = BasicDataSourceFactory.createDataSource(properties);
// 打印dataSource对象创建的连接
System.out.println(dataSource.getConnection());
}
}
运行结果
四、总结
1.Jar包下载
首先,下载必须的jar包
2.配置参数
属性 | 作用 |
---|---|
username | 连接用户名 |
password | 连接密码 |
url | 连接 url( 如果连接 mysql ,格式为 jdbc:mysql://ip:port/dbname) |
driverClassName | jdbc driver 名字 ( 如果是 mysql ,则为com.mysql.jdbc.Driver) |
initialSize | 默认值是 0, 连接池创建连接的初始连接数目 |
maxActive | 默认值是 8, 连接池中同时可以分派的最大活跃连接数 |
maxIdle | 默认是 8 ,连接池中最大空闲连接数 |
minIdle | 默认是 0, 连接数中最小空闲连接数 |
maxWait | 默认值是无限大,当连接池中连接已经用完了,等待建立一个新连接的最大毫秒数 ( 在抛异常之前 ) |
文章来源:https://blog.csdn.net/weixin_72473547/article/details/135076454
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!