Драйверы JDBC не регистрируются автоматически, даже если он содержит каталог службы с java.sql.Driver? - PullRequest
0 голосов
/ 05 октября 2018

Я запускаю простую программу, которая устанавливает соединение JDBC с mysql.Я использую 5.0.8 разъем JAR (MySQL драйвер).Поскольку я читал о механизме обслуживания JDBC 4, нам не нужно вызывать Class.forname("..") для регистрации драйвера.Я пытаюсь это без него.

Connection conn = null;
    try {
        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db"", "root", "root");
        System.out.println("Is Connection closed: "+conn.isClosed());

    } catch (SQLException e) {
        throw new RuntimeException(
                "Error occurred while getting connection because of : " + e.getLocalizedMessage(), e);`
    } finally {
        if (conn != null){
            conn.close();
            System.out.println("Is Connection closed: "+conn.isClosed());
        }
    }

Но когда я выполняю это, выдает ошибку ниже:

_Не найден подходящий драйвер для jdbc: mysql: // localhost: 3306 / db

Также пробовал с mysql-connector-java-8.0.12.jar

1 Ответ

0 голосов
/ 05 октября 2018

Автоматическая загрузка драйвера работает только в том случае, если в банке драйвера содержится определение сервиса.MySQL Connector / J 5.0.8 не совместим с JDBC 4 и содержит , а не содержит определение службы (META-INF/services/java.sql.Driver), необходимое для автоматической загрузки драйвера.Таким образом, автоматическая загрузка драйверов не может работать с версией 5.0.8.

Вам потребуется использовать более новую версию MySQL Connector / J (например, 5.1.47 или 8.0.12).

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