数据库连接池是一个管理数据库连接的容器。它的主要作用是分配和管理数据库连接,允许应用程序重复使用现有的连接,而不是每次都重新建立新的连接。此外,连接池会释放那些空闲时间超过最大限制的连接,从而避免因未及时释放连接而造成的连接泄漏。概括而言,连接池的优势包括:
-
资源重用
-
提升系统响应速度
-
避免数据库连接泄漏
连接池实现
SUN 公司官方提供了一个数据库连接池标准接口 DataSource,它的功能是获取数据库连接,它由第三方组织实现。
Connection getConnection()
常见的数据库连接池:
- DBCP
- C3P0
- Druid(德鲁伊)
Druid(德鲁伊)连接池是阿里巴巴开源的数据库连接池项目。功能强大,性能优秀,是 Java 语言最好的数据库连接池之一。
Druid 的使用
使用 Druid 的步骤如下:
(1)导入相关 jar 包
这里使用 druid-1.1.12
版本的 jar 包。在项目根目录下创建一个存放 jar 包的文件夹 lib。将 Druid 的 jar 包放入 lib 中。接着,右键 jar 包选择 Add as Library...
,使得当前工程能识别 jar 包。
(2)定义配置文件
在项目根目录的 src 文件夹下创建一个 druid.properties 配置文件,配置文件的内容为数据库连接需要提供的配置信息:
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///db?useSSL=false&useServerPrepStmts=true
username=root
password=123456
# 初始化连接数量
initialSize=5
# 最大连接数
maxActive=10
# 最大等待时间
maxWait=3000
(3)加载配置文件
创建一个测试类,在测试类的 main 函数中,使用 Properties 加载配置文件:
Properties prop = new Properties();
prop.load(new FileInputStream("src/druid.properties"));
(4)获取数据库连接池对象
利用 Druid 提供的 DruidDataSourceFactory 工厂方法创建 DataSource 对象,创建时通过 prop 对象提供配置信息:
DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
(5)获取连接
通过 getConnection 方法获取连接:
Connection connection = dataSource.getConnection();
最后,使用连接对象访问和操作数据库。