【问题标题】:No suitable driver found for jdbc:mysql://localhost:3306/ [duplicate]找不到适合 jdbc:mysql://localhost:3306/ 的驱动程序 [重复]
【发布时间】:2012-05-27 14:54:35
【问题描述】:

我有一个 A 类,它连接到我的本地主机中的 mysql 数据库。它在 Eclipse 中运行良好。
然后我修改项目以从 servlet 调用/调用类 A 并部署到 tomcat。
我收到了这个异常:

No suitable driver found for jdbc:mysql://localhost:3306/a

这个异常发生在:

DriverManager.getConnection(connectionUrl, user, password);

这里出了什么问题?我该如何解决这个问题?

添加:
我确定 .jar 在 WEB-INF/lib 下,这不是问题。
我刚刚想通了,问题是我忘了添加这一行:

Class.forName("com.mysql.jdbc.Driver");

有没有人知道为什么这行代码在 web 应用程序中是必须的,而不是在 java 项目中?

【问题讨论】:

  • 确保在 tomcat-lib 文件夹或 WEB-INF/lib 文件夹中有 mysql 的 JDBC 库。
  • 你已经有八年没有需要那个 Class.forName() 调用了。您必须使用非常旧的 MySQL 连接器版本。

标签: jakarta-ee tomcat servlets jdbc mysql-connector


【解决方案1】:

没有合适的驱动程序”通常意味着您提供的用于连接的 JDBC URL 语法不正确或根本没有加载驱动程序。

当调用 getConnection 方法时,DriverManager 将尝试从初始化时加载的驱动程序以及使用与当前小程序或应用程序相同的类加载器显式加载的驱动程序中找到合适的驱动程序。(使用 Class.forName()

还要检查您的类路径中是否有mysql-jdbc.jar。我建议将.jar 放置在您项目的/WEB-INF/lib 目录的物理位置。然后tomcat 将负责其余的工作。

【讨论】:

    猜你喜欢
    • 2016-10-01
    • 2012-05-08
    • 2014-07-28
    • 1970-01-01
    • 1970-01-01
    • 2013-05-09
    • 2012-07-30
    • 2014-06-09
    • 2020-05-21
    相关资源
    最近更新 更多