JDB C (Microsoft SQL Server): не найден подходящий драйвер для URL - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь подключиться к существующей БД, которая является хостом на сервере ESXI, и кажется, что я не могу правильно найти драйвер.

Я использую следующий код:

new ConnectToDb('jdbc:sqlserver:sqltest3:CI-ESXI', 'USER', 'PASSWORD', 'com.microsoft.sqlserver.jdbc.SQLServerDriver')

    ConnectToDb(String url, String user, String password, String driver) {
        Class.forName(driver)
        database =  groovy.sql.Sql.newInstance(url, user, password, driver)
    }

Я получаю следующую ошибку:

Исключение в потоке "main" java. sql .SQLException: не найден подходящий драйвер для jdb c: sqlserver: sqltest3: CI-ESXI

Кроме того, я попробовал следующий стиль java, код:

void connect(String url, String user, String password, String driver) throws SQLException {
    if (null == stmt || stmt.isClosed()) {
        // Create a connection to the database
        if (database_url == null) {
            throw new SQLException("Cannot connect to database, connection URL is null.")
        }

        Properties  database_infos = new Properties()

        database_infos.put("user", user)
        database_infos.put("password", password)
        database_infos.put("driver", driver)

        Class.forName(driver)
        connection = DriverManager.getConnection(url, database_infos)
        stmt = connection.createStatement()
    }
}

, который возвращает то же исключение.

На самом деле, прямой вызов DriverManager.getDriver(driver) возвращает то же исключение.

Драйвер добавляется в файл POM. xml следующим образом:

<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>7.4.1.jre8</version>
</dependency>

Он добавляется в путь к классам, и я могу импортировать его в любом файле java следующим образом import com.microsoft.sqlserver.jdbc.SQLServerDriver без ошибок

Я работаю с использованием IntelliJ IDEA в проекте Groovy, но могу воспроизвести ошибку в Eclipse в чистом проекте Java. Так что, похоже, он не основан на langage / IDE.

Так что теперь я немного не в курсе этого, есть идеи?

1 Ответ

0 голосов
/ 20 января 2020

Итак, я обнаружил, что сообщение об ошибке полностью вводило в заблуждение, поскольку проблема была в URL-адресе, который должен быть:

'jdbc:sqlserver://sqltest3'

Если // отсутствует, то связанные свойства возвращаются к нулю , и не предоставлен драйвер, отсюда и полученное сообщение об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...