Class ConnectionPool

java.lang.Object
top.magstar.framework.database.connections.ConnectionPool
All Implemented Interfaces:
AutoCloseable

public class ConnectionPool extends Object implements 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

  • Method Details

    • getConnection

      public Connection getConnection() throws SQLException
      从连接池获取一个数据库连接。

      如果有可用连接则直接返回,否则根据配置创建新连接或等待连接释放。 返回的连接是包装后的连接,调用 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

      获取连接池统计信息。
      Returns:
      连接池统计信息对象
    • close

      public void close() throws SQLException
      关闭连接池,释放所有连接资源。
      Specified by:
      close in interface AutoCloseable
      Throws:
      SQLException - 如果关闭连接时发生错误