【发布时间】:2019-01-29 02:21:58
【问题描述】:
我知道这是一个老问题,但这里的情况不同。这似乎是 JAVA 10 或 MySQLConnector/J 8.0.12 jar 类的错误。
在我之前使用的 JAVA 8 和 MySQLConnector/J 5.1.39 上运行良好的相同项目(很多,而不仅仅是一个)现在在我更新系统后无法运行。
但该错误仅出现在 RowSet 中。使用明确使用的 DriverManager/Connection/ResultSet,它在相同的 url、url 参数和 MySQL 驱动程序下工作得很好。
我尝试过多地使用 Class.forName("")... 以及 url 参数的变体,但是当我使用 RowSet 时没有任何效果。同样的 java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/scheme1?verifyServerCertificate=false&useSSL=true 被一次又一次抛出。
为什么相同的代码适用于 Java 8 而不是 Java 10?
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
(查看有错误的图片)。
如果有人知道问题和解决方案,请提供帮助。我想继续使用 Java 10。
丹尼尔·皮涅罗
danielpm1982@gmail.com
【问题讨论】:
-
我没有查到。我认为最新的驱动程序版本与 jdk 9 和 10 兼容(他们现在应该为 java 11 做一个驱动程序)。那我得等了……不知道为什么他们总是太迟了。至少,使用 DriverManager/Connection/ResultSet 它确实有效。只有 RowSet 没有。 Hibernate 也适用于使用 jdk 10 的驱动程序。我已经测试过了。
标签: java java-10 mysql-8.0 rowset