首页 > 解决方案 > 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

解决方案


我不假装要引入有效的解决方案,但最近我在使用 Java SE Development Kit 11.0.1 + MySQL Server 8.0.16 + Connector / J 8.0.16 驱动程序时创建JdbcRowSetCachedRowSet对象时遇到了同样的问题。

将JDK更新为最新版本12.0.1后,问题就消失了。

附言

但是要做好准备,在成功创建JdbcRowSet对象后,您在尝试更新它时可能会遇到另一种问题。有关详细信息,请参阅JdbcRowSet 的“java.sql.SQLException:ResultSet 不可更新”


推荐阅读