我想我知道发生了什么事。当您调用DriverManager.getConnection时,它将一一尝试所有可用的驱动程序,直到一个成功。在驱动程序上调用connect时,如果驱动程序错误,则可以返回null;如果失败,则引发异常;如果成功,则返回Connection对象。当所有驱动程序均发生故障时,DriverManager会抛出它获得的第一个异常(如果有),否则将创建并引发“找不到合适的驱动程序”异常。
这可能是您的情况:
-DriverManager首先尝试sqlite驱动程序;它应该返回null,因为它是错误的url驱动程序,但是它引发了异常(这是sqlite驱动程序实现中的错误!)
-接下来,DriverManager正在尝试mysql驱动程序,该驱动程序无法连接某些其他原因(例如,服务器未运行或密码错误)
-DriverManager看到所有驱动程序均无法连接,因此抛出了第一个异常,这是来自sqlite的异常(由于该实现错误)
您可以做什么:
-暂时从类路径中删除sqlite驱动程序,以解决mysql连接问题
-更好地,使用数据源而不是DriverManager。MySQL的例子:
MysqlDataSource ds = new MysqlDataSource();ds.setServerName(serverName);ds.setDatabaseName(mydatabase);ds.setUser(username);ds.setPassword(password);connection = ds.getConnection();
或者您可以使用数据库库为您处理



