Maven:找不到适合jdbc :: mysql:// google的驱动程序

问题描述 投票:0回答:2

我正在尝试使用以下代码将我的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:找不到适合jdbc :: mysql:// google ...的驱动程序

而且我不知道该怎么办。我认为依赖项应该可以将JDBC驱动程序添加到我的类路径中。

java mysql maven jdbc google-cloud-sql
2个回答
0
投票

这是正确的依赖性吗?我不使用gcp,但是当我对MySQL GCP mvn存储库使用Google 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一个


0
投票

您的问题似乎在JDBC URL中有错字。您的网址应以jdbc:mysql开头,而不是jdbc::mysql

另外,you should always use a connection pool(如Hikari)。连接池具有许多优点,包括更好的错误处理,指数退避和减少的延迟。

您可以在context of a web application in this sample中查看与Cloud SQL JDBC套接字工厂一起使用的Hikari。 Full instructions for deploying it are in the sample's README

© www.soinside.com 2019 - 2024. All rights reserved.