怎么用java连接mysql数据库连接池
- 后端开发
- 2025-08-08
- 34
Java应用程序中,使用数据库连接池可以显著提高性能和资源利用率,以下是如何使用Java连接MySQL数据库并配置连接池的详细步骤。
准备工作
1 安装MySQL数据库
确保你已经安装了MySQL数据库,并且可以通过命令行或图形界面工具(如MySQL Workbench)访问它。
2 创建数据库和表
在MySQL中创建一个数据库和一个简单的表,用于测试连接。
CREATE DATABASE testdb;
USE testdb;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(50) NOT NULL
);
INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com');
设置Java项目
1 创建Java项目
使用你喜欢的IDE(如IntelliJ IDEA、Eclipse等)创建一个新的Java项目。

2 添加MySQL JDBC驱动
下载MySQL JDBC驱动(通常是mysql-connector-java-x.x.x.jar),并将其添加到项目的类路径中,如果你使用的是Maven项目,可以在pom.xml中添加以下依赖:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
配置数据库连接池
1 选择连接池实现
常用的Java连接池实现有HikariCP、Apache DBCP、C3P0等,这里我们以HikariCP为例,因为它轻量且性能优秀。
2 添加HikariCP依赖
如果你使用的是Maven项目,在pom.xml中添加以下依赖:

<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.0.1</version>
</dependency>
3 配置HikariCP
创建一个配置文件或类来配置HikariCP连接池,以下是一个简单的配置示例:
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class DatabaseConnectionPool {
private static HikariDataSource dataSource;
static {
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/testdb");
config.setUsername("root");
config.setPassword("password");
config.setMaximumPoolSize(10); // 设置最大连接数
config.setMinimumIdle(2); // 设置最小空闲连接数
config.setIdleTimeout(300000); // 设置空闲超时时间(毫秒)
config.setConnectionTimeout(30000); // 设置连接超时时间(毫秒)
config.setMaxLifetime(1800000); // 设置连接最大生命周期(毫秒)
dataSource = new HikariDataSource(config);
}
public static Connection getConnection() throws Exception {
return dataSource.getConnection();
}
}
使用连接池进行数据库操作
1 获取连接
从连接池中获取连接,执行SQL语句,然后关闭连接,连接池会自动管理连接的生命周期。
public class Main {
public static void main(String[] args) {
try (Connection connection = DatabaseConnectionPool.getConnection()) {
String sql = "SELECT FROM users";
try (PreparedStatement statement = connection.prepareStatement(sql)) {
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
System.out.println("ID: " + resultSet.getInt("id"));
System.out.println("Name: " + resultSet.getString("name"));
System.out.println("Email: " + resultSet.getString("email"));
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
连接池配置参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
JdbcUrl |
JDBC连接URL | |
Username |
数据库用户名 | |
Password |
数据库密码 | |
MaximumPoolSize |
连接池中允许的最大连接数 | 10 |
MinimumIdle |
连接池中保持的最小空闲连接数 | 0 |
IdleTimeout |
空闲连接的最大存活时间(毫秒) | 600000 |
ConnectionTimeout |
获取连接的最大等待时间(毫秒) | 30000 |
MaxLifetime |
连接的最大生命周期(毫秒) | 1800000 |
常见问题与解答(FAQs)
Q1: 为什么使用连接池?
A1: 使用连接池可以减少频繁创建和销毁数据库连接的开销,提高应用程序的性能和响应速度,连接池还可以有效管理数据库连接,避免资源泄漏。

Q2: 如何调整连接池的大小?
A2: 可以通过调整MaximumPoolSize和MinimumIdle参数来控制连接池的大小。MaximumPoolSize设置连接池中允许的最大连接数,MinimumIdle设置连接池中保持的最小空闲连接数,根据应用程序的并发需求和数据库的承载能力,合理调整这些参数可以优化性能。
通过以上步骤,你已经学会了如何在Java中使用HikariCP连接池来管理MySQL数据库连接,连接池的使用可以显著提高应用程序的性能和稳定性,特别是在高并发场景下。
