即使我已将其添加到类路径中,也找不到 JBDC 驱动程序[重复]

问题描述 投票:0回答:4

我的动态 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 库,但也没有成功。

以上似乎都不起作用。我做错了什么?我在其他帖子中找不到工作建议。

java mysql eclipse jdbc
4个回答
1
投票

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

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

我想问题可能是我在项目中的某个地方有多个连接器?不管怎样,重新开始解决了我的问题。我知道这不是一个很好的干净修复,但它有效。

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


1
投票

正如本页中所指出的,您应该:

  1. 此页面下载 mysql 连接器 jar 文件。
  2. 将下载的 jar 文件放入您的
    lib
    文件夹中。
  3. 在编写代码之前,您应该做

    load mysql deriver
    这样的事情:

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


0
投票

您应该使用适当的库。请参阅说明如何安装 Connector-J

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

CLASSPATH

如果您正在开发 servlet 或 JSP,并且您的应用程序服务器是 符合J2EE,可以把驱动程序的

mysql-connector-java-version-bin.jar
文件位于
WEB-INF/lib
您的 web 应用程序的子目录,因为这是第三方的标准位置 J2EE Web 应用程序中的派对类库。


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.