ConnectionManager:连接池

时间:2013-08-17 15:59:49

标签: java jdbc

我有一个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方法时,如果连接可用,则返回它,然后如果所有连接都忙,则客户端等待第一次空闲连接。 我应该如何修改代码呢?

1 个答案:

答案 0 :(得分:1)

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