【问题标题】:JDBC Type 4 DriverJDBC 类型 4 驱动程序
【发布时间】:2011-01-20 01:00:24
【问题描述】:

根据MySQL 5.0 Reference Manual,MySQL JDCB Connector/J 是“Type 4”驱动程序。我用来连接JDBC服务器的方法是……

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

我的 JDBC 根本无法工作,作为我最后的手段来找出它为什么不起作用的一部分,我认为它可能是驱动程序。有人能告诉我这是否是调用 getConnection() 驱动程序的正确方法吗?我真正在寻找的是一个不同的命令,它应该为 Type 4 JDBC 驱动程序替换“com.mysql.jdbc.Driver”。

这是让我想到为什么这不起作用的堆栈跟踪...

java.sql.SQLException: No driver found for jdbc:mysql://localhost:3306/mysql?user=user_name&password=pass_word
    java.sql.DriverManager.getDriver(libgcj.so.10)
    java.sql.DriverManager.getConnection(libgcj.so.10)
    java.sql.DriverManager.getConnection(libgcj.so.10)
    ... blah blah blah

【问题讨论】:

    标签: java mysql jdbc


    【解决方案1】:

    java.sql.SQLException: 找不到 jdbc:mysql//localhost:3306/mysql?user=user_name&password=pass_word 的驱动程序

    这意味着要么运行时类路径中缺少 JDBC 驱动程序(并且您取消了 ClassNotFoundException 并继续),要么 JDBC URL 错误。您的 JDBC URL 实际上有一个错误,:mysql// 之间丢失。它应该看起来像

    jdbc:mysql://localhost:3306/mysql?user=user_name&password=pass_word

    这与驱动程序类型无关。请注意,newInstance() 调用在 com.mysql.jdbc.Driver 上是不必要的。这是其古老的前身 org.gjt.mm.mysql.Driver 中的一个错误的遗留物,它在构造函数中而不是在静态初始化块中注册了自己的 DriverManager

    相关问题

    【讨论】:

    • 我确实从 bashrc 文件中完美地设置了 CLASSPATH。只是为了证明这一点,当我输入“echo $CLASSPATH”时,它会正确地回显 mysql-connector-java-5.1.14-bin.jar 目录。根据手册,要安装驱动程序,我需要做的就是将驱动程序 JAR 的目录放在 CLASSPATH 中。另外,对错字感到抱歉,我修复了它,但仍然得到完全相同的错误。我还注释掉了 newInstance(),但我仍然得到相同的堆栈跟踪。
    • 您运行程序的具体情况如何?你明白我对你previous question 的回答了吗?如果没有,您必须详细说明您是如何运行 Java 程序的。
    • BalusC,我查看了一个相关问题,该问题确实提供了一些设置 JDBC 的详细方法。我按照你说的做了,但现在我遇到了一个没有意义的错误......这里是:com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 '????????????????' 附近使用正确的语法在第 1 行 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1049) com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)...
    • 嗯,我是这样运行它的:“java -jar server.jar”……它在过去是有效的。我还假设我的 CLASSPATH 已正确配置。另外,当我在 Eclipse 中构建 JAR 时,它当然还包括构建路径中的 mysql-connector-java-5.1.14.bin.jar。除此之外,我不明白我应该如何执行这个。对不起,我在这方面听起来很业余。 :(
    • 非常感谢,我还在学习如何使用 StackOverflow 的环境。我不得不承认这是一个非常好的系统,哈哈。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 2011-12-14
    • 2010-09-20
    • 2017-12-07
    相关资源
    最近更新 更多