我想我知道发生了什么事。当您调用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();
或者您可以使用数据库库为您处理