【问题标题】:MySql Connector/J 5.1.41 not connectingMySql 连接器/J 5.1.41 未连接
【发布时间】:2017-04-02 02:36:28
【问题描述】:

我正在使用 MySQL Connector/J 5.1.41 连接到数据库,这是我用来连接的代码:

package DB;

import java.sql.Connection;
import java.sql.DriverManager;
import javax.swing.JOptionPane;

public class ConexionMYSQL {
    public String db="floreria";
    public String url= "jdbc:mysql:/localhost"+db;
    public String user= "root";//aqui va el usuario del phpmyadmin
    public String pwd="";

public Connection conectar(){
    Connection link = null;
    try {
        Class.forName("org.gjt.mm.mysql.Driver");
        link = DriverManager.getConnection(this.url, this.user, this.pwd);
    } catch (Exception e) {

        JOptionPane.showMessageDialog(null, "ERROR: "+e);
    }
    return link;
  }
}

我是Java和mysql连接的新手,当我执行代码时,它向我显示以下异常:

错误:java.lang.ClassNotFoundException:org.gjt.mm.mysql.Driver

我已经检查了 jar 文件是否在类路径中,我也重新安装并替换了 MySql 连接器的 jar 文件,但保持不变。正如我所说,我是这个世界的新手,我几乎不知道 JavaFX 和 mysql 连接,所以我认为我可以提供的所有信息,这是来自我的类​​路径的图像,也许是问题所在:

【问题讨论】:

  • 我认为您不需要Class.forName,我不确定url 是否是唯一的问题 - 但public String url= "jdbc:mysql://localhost/"+db; - 是mysql 配置为允许root 访问来自localhost(甚至是监听TCP)?
  • 我正在使用 xampp 来管理数据库,我正在使用 phpMyAdmin,我可以使用“root”登录,遇到任何问题。我不知道你是不是这个意思。
  • @M.Sha2 检查我的回答,我认为它会对您有所帮助,如果对您有用,请接受 :) 祝您好运

标签: java mysql classnotfoundexception mysql-connector


【解决方案1】:
  • 修改代码如下:public String url="jdbc:mysql://localhost/"+db;
  • 确保将 MySQL Connector/J 5.1.41 jar 文件放在 类路径不是 zip 文件。
  • 解压 MySQL Connector/J 5.1.41 jar 文件并确保 此驱动程序 (org.gjt.mm.mysql.Driver) 存在。
  • 如果没有,请检查 com.mysql.jdbc.Driver 类是否存在并更改 驱动类为 com.mysql.jdbc.Driver。

【讨论】:

    【解决方案2】:

    首先你需要像这样改变url

    public String url= "jdbc:mysql://localhost/"+db; 
    

    将带有 MySQL 驱动程序的文件放入 NetBeans 中的 classpath,以便 IDE 知道您要加载的驱动程序类。

    另外一个奇怪的驱动名称org.gjt.mm.mysql.Driver,通常是com.mysql.jdbc.Driver。请尝试使用com.mysql.jdbc.Driver 驱动程序名称并将mysql-connector jar 放入您的classpath。您可以在 MySQL JDBC Connector JAR 中找到驱动程序,您可以在此处下载:

    http://dev.mysql.com/downloads/connector/j/

    1. 右键单击库 > 单击添加库。
    2. 向下滚动以查找 MySQL JDBC 驱动程序。
    3. 按 Shift + F11。 (清理和构建)
    4. 运行

    【讨论】:

      【解决方案3】:

      首先
      将此行从:public String url= "jdbc:mysql:/localhost"+db;更改为public String url= "jdbc:mysql://localhost/"+db;

      第二
      这是一个奇怪的驱动名称:org.gjt.mm.mysql.Driver
      这是我所知道的:com.mysql.jdbc.Driver,因此您可以将行从:
      Class.forName("org.gjt.mm.mysql.Driver"); 更改为:Class.forName("com.mysql.jdbc.Driver");

      编辑:驱动程序错误名字,我已经更正了。

      确保 jar 文件位于类路径中。

      祝你好运。

      【讨论】:

      • localhost 之前需要两个斜杠。并且您不需要 Class.forName 来获得 long time - 从 Java 6 JavaDoc 链接,应用程序不再需要使用 Class.forName() 显式加载 JDBC 驱动程序。当前使用 Class.forName() 加载 JDBC 驱动程序的现有程序将继续工作而无需修改。
      • @Elliott Frisch,我的错
      • 如果我没记错的话,您建议我更改的第二次编辑与我已有的相同。
      • 是的,在我的例子中,我使用的是 netbeans,这个驱动程序与 IDE 捆绑在一起,所以我只需右键单击并选择添加库,然后选择 MYSQL JDBC 驱动程序
      • 进行这些更改,让我知道可能发生的任何错误
      猜你喜欢
      • 2010-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多