【问题标题】:JBDC driver not found even though i have added it to the classpath即使我已将其添加到类路径中,也找不到 JBDC 驱动程序
【发布时间】:2015-10-20 15:08:30
【问题描述】:

我的动态 Web 项目有问题。这是我的第一个项目,我想做一些相当简单的事情。我想从我的数据库中打印出数据。我使用 MYSQL 并建立了一个数据库。我想使用以下代码进行连接:

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    // Set the MIME type for the response message
      response.setContentType("text/html");
      // Get a output writer to write the response message into the network socket
      PrintWriter out = response.getWriter();

      Connection conn = null;
      Statement stmt = null;
      try {
         // Step 1: Create a database "Connection" object
         // For MySQL
         conn = DriverManager.getConnection(
            "jdbc:mysql://localhost:3306/webshop", "root", "admin");  // <<== Check


      } catch (SQLException ex) {
         ex.printStackTrace();
      }
    }

我收到的信息与其他帖子已经提到的相同:

    java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/webshop

我从其他帖子中了解到,必须将连接器添加到类路径。我通过使用 Eclipse(我正在使用的 IDE)的 properties 向导完成了这项工作。这没有用!我已将 mysql-connector-java-5.1.37 添加到类路径中。我还尝试将其直接添加到 WEB-INF/lib 文件夹中,可惜没有成功。我尝试的最后一件事也是不成功,就是将它添加到 tomcat7 库中。

以上方法似乎都不起作用。我究竟做错了什么?我在其他帖子中找不到可行的建议。

【问题讨论】:

  • 您是否尝试将 lib/ 下的 *.JAR 直接链接到您的项目中?您应该通过项目属性的配置将其指定给 eclipse 运行时。提供大量在线教程,例如 wikihow.com/Add-JARs-to-Project-Build-Paths-in-Eclipse-(Java) 来设置构建和/或运行时路径。
  • 是的,我基本上尝试将它放在每个 /lib 文件夹下。如果需要,可以通过项目属性窗口将其添加到构建路径中。他们都没有工作。
  • Deschamps,您是否尝试过复制/移动“*/WebContent/WEB-INF/lib”下的库?在这里,一个有用的链接:javahotchocolate.com/tutorials/web-jars.html.

标签: java mysql eclipse


【解决方案1】:

您应该使用适当的库。请参阅说明how to install Connector-J

您可以使用二进制文件或 源分布。二进制分发提供了最简单的 安装方法;源代码分发允许您自定义 您的安装进一步。无论使用哪种解决方案,您都可以手动添加 连接到您的 Java CLASSPATH 的连接器/J 位置。

如果您正在开发 servlet 或 JSP,并且您的应用程序服务器是 J2EE兼容,可以把驱动的 mysql-connector-java-version-bin.jar 文件在WEB-INF/lib webapp 的子目录,因为这是第三个的标准位置 J2EE Web 应用程序中的party 类库。

【讨论】:

    【解决方案2】:

    正如之前的答案中已经建议的那样: - 考虑将驱动程序 JAR 添加到您的 WEB-INF/lib 文件夹 - 或者,如果您打算在多个应用程序中使用它,请将其部署在 tomcat 的 lib 文件夹下 - 它将使用父加载器提供给您的应用程序的类加载器 - 如果使用 JDBC 3 或更早版本,您可以在 servlet 的 init() 方法中调用 loadClass("com.mysql.jdbc.Driver"),例如

    也许更好的方法是注入一个绑定到 MySql 数据库的 DataSource 对象。例如检查@Resource注解

    【讨论】:

      【解决方案3】:

      感谢所有伟大的提示和帮助!我在这里找到的大多数选项,我已经尝试过了。所以对我来说,特别是我的设置似乎有问题。这不是一个普遍问题。

      我已经通过简单的重新开始解决了这个问题。删除eclipse,tomcat服务器,一切......然后再次安装所有必要的东西。这次成功了第一次尝试!我将连接器(仅)添加到 tomcat 服务器的 /lib 中。

      我认为问题可能是我在项目的某个地方有多个连接器?无论如何,重新开始解决了我的问题。我知道这不是一个很好的干净修复,但它确实有效。

      再次感谢您的努力和时间!

      【讨论】:

        【解决方案4】:

        正如this page 中指出的那样,您应该:

        1. this page下载mysql连接器jar文件。
        2. 将下载的jar文件放入lib文件夹中。
        3. 在你的代码之前,你应该像这样 load mysql deriver 做这样的事情:

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

        【讨论】:

          猜你喜欢
          • 2018-04-05
          • 2017-08-14
          • 1970-01-01
          • 1970-01-01
          • 2018-11-10
          • 1970-01-01
          • 2016-11-29
          • 1970-01-01
          相关资源
          最近更新 更多