簡體   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