繁体   English   中英

DriverManager.getConnection() 不适用于 OpenJDK

[英]DriverManager.getConnection() doesn't work with OpenJDK

我有一个可执行的 jar 实用程序,可以进行数据库查询。 它在 Oracle Java 上运行良好。 但是,如果我用 OpenJDK 运行它,它就无法获得数据库连接。 奇怪的是没有错误或异常。 它只是停止运行该方法。

我正在连接到 SQL Server。 我将“getDbConnection 2”输出到控制台,但之后没有任何反应。 没有错误,什么都没有。 我不明白为什么这适用于标准 Java,但不适用于 OpenJDK。

这是代码:

protected Connection getDbConnection()
{
    Connection conn = null;
    consoleWrite("getDbConnection 1");
    
    try {
        final String server = from_server.getText();
        final String port = from_port.getText();
        final String dbName = from_dbname.getText();
        String url = String.format("jdbc:sqlserver://%s:%s;databaseName=%s", server, port, dbName);
        String user = from_user.getText();
        final String pwd = from_pass.getText();
        consoleWrite("getDbConnection 2");
                    
        conn = DriverManager.getConnection(url, user, pwd);
        if (conn == null) {
            consoleWrite("conn not found");
        }
        consoleWrite("getDbConnection 3");
    }
    catch (SQLException se) {
        handleError(se);
    }
    catch (ClassNotFoundException ce) {
        handleError(ce);
    }
    catch(Exception e) {
        handleError(e);
    }
    
    return conn;
}

解决方案:

我需要一个更新的 JDBC 驱动程序。 更新到 mssql-jdbc-9.4.0.jre8.jar 后,它也适用于 OpenJDK 11.0.2。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM