JAVA 10-JAVA.sql.SQLException:未找到适合jdbc的驱动程序:mysql://localhost:3306/ 错误

JAVA 10-JAVA.sql.SQLException:未找到适合jdbc的驱动程序:mysql://localhost:3306/ 错误,java,java-10,mysql-8.0,rowset,Java,Java 10,Mysql 8.0,Rowset,我知道这是个老问题,但这里的情况不同。这似乎是Java10或MySQLConnector/J8.0.12JAR类中的一个bug 同样的项目很多,不仅仅是一个在Java8和MySQLConnector/J5.1.39上运行良好的项目(我以前使用过),现在在我更新系统后就不起作用了 但该错误仅在行集中出现。通过显式使用DriverManager/Connection/ResultSet,它可以很好地使用相同的url、url参数和MySQL驱动程序 我试图冗余地使用Class.forName。。。以及

我知道这是个老问题,但这里的情况不同。这似乎是Java10或MySQLConnector/J8.0.12JAR类中的一个bug

同样的项目很多,不仅仅是一个在Java8和MySQLConnector/J5.1.39上运行良好的项目(我以前使用过),现在在我更新系统后就不起作用了

但该错误仅在行集中出现。通过显式使用DriverManager/Connection/ResultSet,它可以很好地使用相同的url、url参数和MySQL驱动程序

我试图冗余地使用Class.forName。。。以及url参数的变化,但在使用行集时没有任何效果。相同的java.sql.SQLException:未找到适合jdbc的驱动程序:mysql://localhost:3306/scheme1?verifyServerCertificate=false&useSSL=true 一次又一次地被抛出

为什么同样的代码适用于Java8而不是Java10

try {
        RowSet rowSet = RowSetProvider.newFactory().createCachedRowSet();
        String url = "jdbc:mysql://localhost:3306/scheme1?verifyServerCertificate=false&useSSL=true";
        rowSet.setUrl(url);
        rowSet.setUsername("root");
        rowSet.setPassword("root");
        rowSet.setCommand("select * from client");
        rowSet.execute();
        while(rowSet.next()) {
            System.out.println(rowSet.getInt(1)+" "+rowSet.getString(2));
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }enter image description here
查看带有错误的图片

如果有人知道问题和解决方案,请帮助。我想继续使用Java10

丹尼尔·皮涅罗

danielpm1982@gmail.com


mysql-connector.jar是JAVA 8的一个新版本
您需要等待MySQL推出用于JAVA 10的连接器或降级到JAVA 8。

很清楚支持的版本是什么,我没有查到。我认为最新的驱动程序版本与JDK9和10兼容,他们现在应该为Java11开发驱动程序了。那我只好等了。。。不知道为什么他们总是太迟。至少,对于DriverManager/Connection/ResultSet,它确实可以工作。只有行集没有。Hibernate还使用JDK10与驱动程序一起工作。我已经测试过了,我还没查过。我认为最新的驱动程序版本与JDK9和10兼容,他们现在应该为Java11开发驱动程序了。那我只好等了。。。不知道为什么他们总是太迟。至少,对于DriverManager/Connection/ResultSet,它确实可以工作。只有行集没有。Hibernate还使用JDK10与驱动程序一起工作。我已经测试过了。