jdbc drivermanager在尝试连接到数据库之前检测用户是否在网络上?

kyvafyod  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(366)

我正在开发一个java应用程序,它可以连接到我的办公网络,也可以不连接。
我的问题是,当用户未连接时 DriverManager.getConnection() 在最终释放它无法连接到数据库之前需要20秒。
连接我或不连接到服务器的代码:

public static Connection getConnection() {
    try{
        //cnx is my Connection object
        if(cnx ==null || cnx.isClosed()){
            Class.forName("com.mysql.jdbc.Driver");

            //Get the connection if possible
            cnx = DriverManager.getConnection(connectionString, user, password);
        }
        /*
        Basically, I'm just checking if "ConfigUser.isConnected()" is true
        later in the code to know if I should try to execute SQL queries
        */
        ConfigUser.setConnected(true);
        return cnx;
    }
    catch (Exception e){
    }
    ConfigUser.setConnected(false);
    return null;
}

我试着用 DriverManager.setLoginTimeout() 但它似乎没有改变什么。

qq24tv8q

qq24tv8q1#

添加到 connectionString 连接超时(毫秒):

&connectTimeout=5000

连接超时
套接字连接超时(毫秒),0表示没有超时。仅适用于jdk-1.4或更新版本。默认为“0”。

相关问题