Maven: не найден подходящий драйвер для jdb c :: mysql: // google - PullRequest
0 голосов
/ 29 марта 2020

Я пытаюсь подключить свой Java проект Maven (который выполняется на сервере Jetty) к базе данных Google Cloud MySQL со следующим кодом:

private static final String CREDENTIALS_STRING = "jdbc::mysql://google/weatherplanning?cloudSqlInstance=csci310-project-2:us-central1:myinstance&socketFactory=com.google.cloud.sql.mysql.SocketFactory&useSSL=false&user=xxxx&password=xxxx";
try {
        System.out.println("Connecting to database...");
        Class.forName("com.mysql.cj.jdbc.Driver");
        connection = DriverManager.getConnection(CREDENTIALS_STRING);
    } catch (SQLException | ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

Я включил оба из этих зависимостей в моем pom. xml:

    <dependency>
        <groupId>com.google.cloud.sql</groupId>
        <artifactId>mysql-socket-factory-connector-j-8</artifactId>
        <version>1.0.15</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.18</version>
    </dependency>

Я получаю

java. sql .SQLException: Не найден подходящий драйвер для jdb c :: mysql: //google...

и я не знаю, что делать. Я предполагаю, что зависимости должны обрабатывать добавление драйвера JDB C в мой путь к классам.

Ответы [ 2 ]

0 голосов
/ 29 марта 2020

Ваша проблема выглядит так, как будто в вашем JDB C URL есть опечатка. Ваш URL должен начинаться с jdbc:mysql вместо jdbc::mysql.

Кроме того, вы всегда должны использовать пул соединений (например, Hikari ). Пулы соединений имеют много преимуществ, включая лучшую обработку ошибок, экспоненциальный откат и уменьшенную задержку.

Вы можете просмотреть использование Hikari с фабрикой сокетов Cloud SQL JDB C в контексте веб-приложения в этом примере . Полные инструкции по его развертыванию находятся в README образца .

0 голосов
/ 29 марта 2020

Это правильная зависимость? Я не использую gcp, но когда я Google mvn-зависимость для MySQL GCP mvn-репозитория, я получаю

<!-- https://mvnrepository.com/artifact/com.google.cloud.sql/mysql-socket-factory -->
<dependency>
    <groupId>com.google.cloud.sql</groupId>
    <artifactId>mysql-socket-factory</artifactId>
    <version>1.0.15</version>
</dependency>

Может быть, вы можете попробовать эту зависимость вместо вашей j-8 one

...