Java 中的 MySQL 连接错误 - com.mysql.jdbc.Driver

Posted

技术标签:

【中文标题】Java 中的 MySQL 连接错误 - com.mysql.jdbc.Driver【英文标题】:MySQL Connection Error in Java - 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 需要一个库,这个库必须在那里。 【参考方案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服务。

【讨论】:

以上是关于Java 中的 MySQL 连接错误 - com.mysql.jdbc.Driver的主要内容,如果未能解决你的问题,请参考以下文章

Java数据库mySQL访问被拒绝

IntelliJ IDEA 上的web项目进行数据库连接时出现java.lang.ClassNotFoundException: com.mysql.jdbc.Driver错误解决办法

java运行代码连接mysql时提示:找不到类错误

jsp项目中连接数据库解决java.lang.ClassNotFoundException: com.mysql.jdbc.Driver的问题

求解决java中用jdbc方式连接mysql数据库的问题,错误异常如下:(解决后再加分)

java jdbc中的连接太多