【问题标题】:MySQL Connection Error in Java - com.mysql.jdbc.DriverJava 中的 MySQL 连接错误 - com.mysql.jdbc.Driver
【发布时间】:2014-03-25 17:01:41
【问题描述】:

我一直在尝试将我的 java 应用程序连接到 MySQL 数据库并使用了以下代码行:

import java.sql.*; 
public class AcceptValues extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

             String url = "jdbc:mysql://localhost:3306/db_name";
             String driver = "com.mysql.jdbc.Driver";
             String userName = "root";
             String password = "";
             try {
             Class.forName(driver);
             Connection conn = DriverManager.getConnection(url,userName,password);
             out.print("Connection estd");
             Statement st = conn.createStatement();
             st.executeQuery("insert into table_name values(2, 'testing');");
             }
             conn.close();
             } catch (Exception e) {
                 out.print("Error : " +e.getMessage());
             }
        }
}

我还将类名设置为我从 mysql 网站下载的 mysql-connector-java-5.1.29-bin.jar。但是我仍然无法使用上面的代码行连接到数据库,并且将 exeption com.mysql.jdbc.Driver 作为错误抛出。

我是 Java 开发的新手,任何帮助都将不胜感激。谢谢。

【问题讨论】:

  • 仅使用 e 打印堆栈跟踪,将 e.getMessage() 更改为 e
  • 使用 e.printStackTrace(),并发布错误堆栈跟踪。并解释“我还将类名设置为 mysql-connector-java-5.1.29-bin.jar”是什么意思。这个 jar 在你的 WEB-INF/lib 文件夹中,对吧?
  • 我没有在 WEB-INF/lib 文件夹中包含 mysql-connector 文件。现在我做到了,一切正常。感谢 JB Nizet 发现错误!
  • WEB-INF/lib 中的 jars 是你的 webapp 的类路径。如果你的 webapp 需要一个库,这个库必须在那里。

标签: java mysql jsp jdbc


【解决方案1】:

WEB-INF/lib 文件夹中添加mysql-connector-java-5.1.29-bin.jar。 仅在构建路径中添加 jar 是不够的。 甚至我一开始也有同样的问题。

【讨论】:

  • 或者,更好的是,学习如何使用 maven、gradle 或其他构建管理工具,它们将为您完成所有这些工作
【解决方案2】:

这是你的答案,

右键单击项目属性 --> Java Build Path --> 库 --> 将 Jar 添加到您的项目(您已经下载)

不要对你在servlet文件中的连接信息创建单独的连接文件

在需要时调用类

import java.sql.*;
public class DBConn {

private String url = "jdbc:mysql://localhost:3306/test";
private String driver = "com.mysql.jdbc.Driver";
private String userName = "root";
private String password = "root";
private Connection con = null;

private void getConnection() {

     try {
         Class.forName(driver);
         if(con == null){
             con = DriverManager.getConnection(url,userName,password);
         }
         System.out.print("Connection estd");
     }catch (Exception e) {
         System.out.print("Error : " +e.getMessage());
    }
}


/**for desktop application */
public static void main(String[] arg){

    DBConn con = new DBConn();
    con.getConnection();
  }
}

您也可以使用以下代码在您的 sevelet 中获取连接

import java.sql.*; 
public class AcceptValues extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

   DBConn con = new DBConn();
   con.getConnection();
}
}

此示例代码,但您可以使其更高效,这只是示例,

请提供完整的错误/异常信息

【讨论】:

    【解决方案3】:

    com.mysql.jdbc.Driver 作为错误。

    我遇到了这个问题,在大多数情况下,这个问题背后有两个原因。一是缺少mysql的jar文件,二是没有启动mysql服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-12
      • 2014-06-20
      • 1970-01-01
      • 2021-06-05
      • 2023-04-07
      相关资源
      最近更新 更多