java - JdbcRowSet 返回 SQL 异常
问题描述
请帮我处理RowSetProvider,它会引发 SQL 异常
(没有找到适合 jdbc:mysql://localhost:3306 的驱动程序)
而Drivermanager.getConnection()工作正常。
public static void main(String[] args) throws SQLException {
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/zoo?serverTimezone=UTC", "hbstudent",
"hbstudent");
System.out.println(con.getCatalog()); // <-- works OK
// ****************************************************
JdbcRowSet rs = RowSetProvider.newFactory().createJdbcRowSet();
rs.setUrl("jdbc:mysql://localhost:3306/zoo?serverTimezone=UTC");
rs.setUsername("hbstudent");
rs.setPassword("hbstudent");
rs.setCommand("select 1");
rs.execute(); //<-- Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/zoo?serverTimezone=UTC
}
解决方案
我不假装要引入有效的解决方案,但最近我在使用 Java SE Development Kit 11.0.1 + MySQL Server 8.0.16 + Connector / J 8.0.16 驱动程序时创建JdbcRowSet和CachedRowSet对象时遇到了同样的问题。
将JDK更新为最新版本12.0.1后,问题就消失了。
附言
但是要做好准备,在成功创建JdbcRowSet对象后,您在尝试更新它时可能会遇到另一种问题。有关详细信息,请参阅JdbcRowSet 的“java.sql.SQLException:ResultSet 不可更新”。
推荐阅读
- flutter - 测量颤振应用程序启动时间
- html - CSS 元素没有响应
- oracle - 如何在 sql*plus 中使用 dbms_lob.substr
- javascript - 在 Altair / Vega 中,有没有办法在点击时运行任意 Javascript 代码?
- c++ - MSVC 不允许重载 -> 运算符,它返回指向标量类型别名的指针
- vue.js - 基于路由的条件状态
- html - 如何在桌面和移动设备上使图像中的文本动态化
- c - Linux中的键盘频率
- c - 从 C 中的二进制文件读取整数数组时中止陷阱
- javascript - ParserError:预期的编译指示、导入指令或合同/接口/库定义