0

我有一个 jdbc 客户端,它通过联系 RMI 服务器与 postgresql 数据库进行通信。在这个 rmi 服务器中,我有一个简单的 ConnectionManager 代码:

public class ConnectionManager {
    private ConnectionManager(){};

    private static boolean driverLoad = false;
    private static final String pgDriver="org.postgresql.Driver";
    private static final String pgUrl = dbc:postgresql://localhost:5434/franchising_db";
    private static final String user = "postgres";
    private static final String pass = "password";

    public static Connection getConnection() throws ClassNotFoundException, SQLException {
        if(!driverLoad) {

            Class.forName(pgDriver);
            driverLoad = true;
        }
        return DriverManager.getConnection(pgUrl, user, pass);
    }
}

现在 postgresql 有 30 个当代连接的限制,但是这种 ConnectionManager 并没有避免这种用例。我想创建一个定义数量的连接(例如 5 个),当客户端调用 getConnection 方法时,如果连接可用,则返回它,然后如果所有连接都忙,则客户端等待第一个空闲连接。我应该如何修改该代码来做到这一点?

4

1 回答 1

1

您可以查看 jdbc 连接池,您可以在其中指定打开的连接数、空闲时间、等待时间等。最流行的库是C3P0DBCP

于 2013-08-17T16:12:18.803 回答