0

我正在尝试使用这个简单的代码连接到 mysql 数据库。

import java.sql.*;
public class OdbcAccessConnection_1 {
  public static void main(String [] args) {
    Connection con = null;
    try {
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
    // Connect with a url string
      con = DriverManager.getConnection("jdbc:mysql://localhost/books","root","1234");
      System.out.println("Connection ok.");
      con.close();
    } catch (Exception e) {
      System.err.println("Exception: "+e.getMessage());
      e.printStackTrace();
    }
  }
}

它所做的只是告诉我连接是否正常。我的数据库没有问题,这个代码/连接在 netbeans 上工作。我得到的 StackTrace 是 -

the java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/books
        at java.sql.DriverManager.getConnection(DriverManager.java:602)
        at java.sql.DriverManager.getConnection(DriverManager.java:185)
        at OdbcAccessConnection_1.main(OdbcAccessConnection_1.java:13)

我正在使用 64 位 Windows 7 并使用 64 位连接器/ODBC 驱动程序的 5.1 版本。在 ODBC 上似乎一切都已连接并且测试成功。但是当我运行代码时,我得到了上面的堆栈跟踪。我错过了一些非常简单的东西,因此非常感谢任何输入和帮助。谢谢:)

4

5 回答 5

2

转到 netbeans 或您正在使用的任何 IDE 中的“运行”菜单 =>“设置项目配置”然后“自定义”。然后选择左侧下拉菜单中的“库”添加适当的驱动程序文件 jar 或文件夹。单击确定。

于 2012-12-15T13:19:57.880 回答
0

最佳解决方案 bhai 徽标 -:

转到 JCreator 配置菜单,然后单击选项,然后单击 JDK 配置文件,然后双击您使用的任何版本,然后单击添加存档,然后转到该路径 -> C:\Program Files\MySQL\MySQL Tools for 5.0\java \lib\mysql-connector-java-5.0.4-bin.jar 按确定。

于 2013-10-05T18:44:13.700 回答
0

jdbc:mysql://localhost/books是您使用 MySQL JDBC 驱动程序直接连接到 MySQL 的 URL。JDBC/ODBC 驱动程序使用的 URL 不同(请参阅http://docs.oracle.com/javase/1.3/docs/guide/jdbc/getstart/bridge.doc.html)。

不鼓励使用此 JDBC/ODBC 桥接器,并且只能用于访问不提供任何 JDBC 驱动程序的数据库。这不是 MySQL 的情况。使用Connector/J,他们的 JDBC 驱动程序。在类路径中拥有此驱动程序后,您可以使用当前正在使用的 URL,并从类路径中删除 JDBC/ODBC 驱动程序(以及从代码中加载它)。

于 2012-05-05T17:47:36.713 回答
0

这个错误让我毛骨悚然,因为我忘记添加Class.forName行。mysql 驱动程序 jar 在类路径上,但没有人隐式加载驱动程序类,因此会话工厂找不到任何加载的驱动程序类。因此这条线的目的。

在你的情况下,你加载了错误的东西。如果您打算将它与jdbc:mysql://连接一起使用,它应该是Class.forName("com.mysql.jdbc.Driver") 。

于 2012-07-30T16:16:09.667 回答
0
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/books","root","1234");
于 2012-05-10T05:52:28.353 回答