Class ConnectionPool
java.lang.Object
top.magstar.framework.database.connections.ConnectionPool
- All Implemented Interfaces:
AutoCloseable
数据库连接池。
提供线程安全的数据库连接池管理,支持连接复用、自动创建和释放连接。 使用连接包装器实现连接的自动归还,避免连接泄漏。
使用示例
// 创建配置
DatabaseConfig config = new DatabaseConfig();
config.setUrl("jdbc:mysql://localhost:3306/test");
config.setUsername("root");
config.setPassword("password");
config.setMinConnections(5);
config.setMaxConnections(20);
// 创建连接池
try (ConnectionPool pool = new ConnectionPool(config)) {
// 获取连接
try (Connection conn = pool.getConnection()) {
// 使用连接
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM users");
} // 连接自动归还
} // 连接池自动关闭
- Since:
- 1.0.0
- Version:
- 1.0.0
- Author:
- Berry_so
-
Constructor Details
-
ConnectionPool
构造一个连接池。- Parameters:
config- 数据库配置- Throws:
IllegalArgumentException- 如果配置参数无效RuntimeException- 如果初始化连接失败
-
-
Method Details
-
getConnection
从连接池获取一个数据库连接。如果有可用连接则直接返回,否则根据配置创建新连接或等待连接释放。 返回的连接是包装后的连接,调用 close() 方法时会自动归还到连接池。
- Returns:
- 数据库连接
- Throws:
SQLException- 如果连接池已关闭、获取连接超时或创建连接失败
-
getActiveConnections
public int getActiveConnections()获取当前活动连接数。- Returns:
- 活动连接数
-
getAvailableConnections
public int getAvailableConnections()获取当前可用连接数。- Returns:
- 可用连接数
-
getTotalConnections
public int getTotalConnections()获取总连接数。- Returns:
- 总连接数
-
getMaxConnections
public int getMaxConnections()获取最大连接数配置。- Returns:
- 最大连接数
-
getMinConnections
public int getMinConnections()获取最小连接数配置。- Returns:
- 最小连接数
-
getCreatedConnections
public int getCreatedConnections()获取已创建的连接总数。- Returns:
- 已创建的连接总数
-
getStats
-
close
关闭连接池,释放所有连接资源。- Specified by:
closein interfaceAutoCloseable- Throws:
SQLException- 如果关闭连接时发生错误
-