【问题标题】:How to add the JDBC mysql driver to an Eclipse project? [duplicate]如何将 JDBC mysql 驱动程序添加到 Eclipse 项目? [复制]
【发布时间】:2013-03-22 20:21:05
【问题描述】:
  1. 我已经下载了mysql-connector-java-5.1.24-bin.jar
  2. 我在我的项目中创建了一个lib 文件夹并将jar 放在那里。
  3. 项目属性->构建路径->添加JAR并选择上面的JAR。
  4. 我仍然收到java.sql.SQLException: No suitable driver found for jdbc:mysql//localhost:3306/mysql

我正在使用 mysql 5.5 代码:

package DBTest;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;
import java.util.*;

/**
 * Servlet implementation class TenUsers
 */
@WebServlet("/TenUsers")
public class TenUsers extends HttpServlet {
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        PrintWriter out = response.getWriter();
        String mySqlUrl = "jdbc:mysql://localhost:3306/mysql";

        Properties userInfo = new Properties();
        userInfo.put("user", "root");
        userInfo.put("password", "SabababArba");
        try{
            Connection connection = DriverManager.getConnection(mySqlUrl, userInfo);
        }catch(Exception e) {
            out.println(e);
        }      
    }
}

如果我在Connection connection = DriverManager.getConnection(mySqlUrl, userInfo); 之前添加Class.forName("com.mysql.jdbc.Driver");,我会得到java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

【问题讨论】:

  • 你的 mySql 版本是多少?
  • 你可能在 mysql 之后也缺少一个 ':' : jdbc:mysql://localhost:3306/
  • 你也可以试试这个:DriverManager.registerDriver(new com.mysql.jdbc.Driver()); 在获得连接之前。
  • @niculare - 你是我的偶像。把它作为一个答案,这样我就可以接受它

标签: java mysql servlets jdbc driver


【解决方案1】:

尝试插入:

DriverManager.registerDriver(new com.mysql.jdbc.Driver());

在获取 JDBC 连接之前。

【讨论】:

  • 它解决了我使用 sbt 测试时遇到的依赖问题。 DriverManager 无法自行定位org.postgresql.Driver。此行帮助修复了我使用 sbt test 运行的测试套件
【解决方案2】:

1:我已经下载了mysql-connector-java-5.1.24-bin.jar

好的。


2:我在我的项目中创建了一个 lib 文件夹并将 jar 放在那里。

错了。您需要将 JAR 放到 /WEB-INF/lib 文件夹中。您无需创建任何其他文件夹。


3:项目属性->构建路径->添加JAR并选择上面的JAR。

不必要的。全部撤消以避免可能的冲突。


4: 我仍然得到 java.sql.SQLException: No suitable driver found for jdbc:mysql//localhost:3306/mysql

此异常可能有 2 个原因:

  1. JDBC 驱动程序不在运行时类路径中。这需要通过 2) 正确的方式来解决。
  2. 任何加载的 JDBC 驱动程序都无法识别 JDBC URL。确实,JDBC URL 是错误的,按照MySQL JDBC driver documentation,scheme 和主机之间应该有一个冒号。

    jdbc:mysql://localhost:3306/mysql
    

【讨论】:

  • 我做了你写的一切。尽管如此,同样的问题:-(一定是我想念的超级简单的东西
  • 清理、重建、重新部署和重新启动。如果这没有帮助,那么好吧,也许你没有仔细按照说明进行操作,或者没有运行你认为正在运行的代码。
  • hmmm...我创建了一个新项目,干净。做了你写的步骤。我在 Java Resources / Libraries / Web App Libraries 中看到了 JAR,仍然是同样的错误。当我对一个简单的 Java 项目做同样的事情时,它工作得很好。对于网络,我使用的是 servlet,因为这似乎是所有的区别
  • 是的,对于 Java EE Web 应用程序,JAR 文件必须物理地放在项目的 /WEB-INF/lib 文件夹中,如果您以正确的方式创建项目,IDE 应该已经准备好很长时间.就这样。只需一步。将 JAR 放入 /WEB-INF/lib。完成的。无需自己创建文件夹结构。无需摆弄项目的属性,这可能会使事情变得更糟。顺便问一下,你现在得到的是ClassNotFoundException 还是SQLException?这些是完全不同的例外,每个都有非常明确的原因。
  • 我完全按照您的步骤进行操作,我只是将 JAR 放入文件夹中(为此测试创建了一个新项目)。我得到的例外是: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/lms2prod
【解决方案3】:

您可以将驱动程序的 .jar 文件粘贴到 Java 设置中,而不是将其添加到您创建的每个项目中。将其粘贴到 C:\Program Files\Java\jre7\lib\ext 或安装了 java 的任何位置。

之后,您会发现.jar 驱动程序已列入您在IDE 中创建的项目(JRE 系统库)的库文件夹中。无需重复添加。

【讨论】:

  • 对于 Mac 用户,您应该将其粘贴到 /Library/Java/Extensions
【解决方案4】:
  1. 复制mysql-connector-java-5.1.24-bin.jar

  2. 将其粘贴到 \Apache Software Foundation\Tomcat 6.0\lib\

  3. 从 Eclipes 重新启动您的服务器。

  4. 完成

【讨论】:

  • 虽然我猜它会起作用,但我需要将它们全部捆绑到一个包中,这就是为什么我更喜欢它本身位于项目文件夹中的原因。虽然,我们会认真考虑这一点(会影响发布脚本等)
  • mysql-connector-java-5.1.24-bin.jar文件应该在server的lib目录下,否则无法使用。
【解决方案5】:

您尚未将驱动程序加载到内存中。 在init() 中使用以下内容

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

另外,您在 url 中遗漏了一个冒号 (:),请使用此

String mySqlUrl = "jdbc:mysql://localhost:3306/mysql";

【讨论】:

    【解决方案6】:

    如果您一次又一次遇到此异常,请下载 mysql 连接器并粘贴到 tomcat/WEB-INF/lib 文件夹中...请注意,有时 WEB-INF 文件夹不包含 lib 文件夹,当时手动创建 lib 文件夹并将 mysql 连接器粘贴到该文件夹​​中。这肯定会起作用。如果仍然有问题,请检查您的 jdk 是否必须与您的系统匹配。即如果您的系统是 64 位,那么 jdk 必须是 64 位

    【讨论】:

      【解决方案7】:

      试试这个教程,它有解释,会很有帮助 http://www.ccs.neu.edu/home/kathleen/classes/cs3200/JDBCtutorial.pdf

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-09
        • 2012-11-20
        • 2014-06-30
        • 2011-11-25
        • 1970-01-01
        • 2021-05-28
        • 2017-08-27
        • 2011-08-22
        相关资源
        最近更新 更多