单例 JDBC 连接与多连接的性能

Performance of singleton JDBC connection vs multiple connections

我想知道为什么使用单例 JDBC 连接比使用多个 JDBC 连接更快。显而易见的答案是使用单个连接比使用多个连接更快,因为创建连接的过程相当耗费资源。

我正在寻找对为什么会这样的深入解释。

我测试了下面的单例方法和多例方法。

单例

@Component
public class ConnectionService {
  
    private static Connection connection = null;

    static {
        String url = "REDACTED";
        String user = "REDACTED";
        String pass = "REDACTED";
        try {
            connection = DriverManager.getConnection(url, user, pass);
        }
        catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection()
    {
        return connection;
    }

多个

public Connection establishConnection() {
    Connection connection = null;

    try {
        connection = DriverManager.getConnection("REDACTED", "REDACTED", "REDACTED");
    } catch (SQLException e) {
        System.out.println("No connection");
    }
    return connection;
}

测试

我测试了两种方法的性能,结果如下。

如果您使用多线程,每个线程都应该有自己的连接。否则,单身是 'right' 的方式。