2

我在尝试使用以下代码获取数据库连接时遇到问题:

import java.lang.*;
import java.sql.*;

public class Demo {
    public static void main(String[] args){
        try{
            Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?" + "user=test&password=123456");
        }catch(SQLException ex){
            System.out.println("SQLException: " + ex.getMessage());
            System.out.println("SQLState: " + ex.getSQLState());
            System.out.println("VendorError: " + ex.getErrorCode());
        }catch(Exception ex){
            System.out.println("Exception: " + ex.getMessage());
        }
    }                                             
}

输出的错误信息是:

SQLException: No suitable driver found for jdbc:mysql://127.0.0.1:3306/test?user=test&password=123456
SQLState: 08001
VendorError: 0

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at Demo.main(Demo.java:9)

我的java版本如下:

java -> /usr/lib/jvm/java-6-openjdk-i386/bin/java
javac -> /usr/lib/jvm/java-6-openjdk-i386/bin/javac
javac.1.gz -> /usr/lib/jvm/java-6-openjdk-i386/man/man1/javac.1.gz
javadoc -> /usr/lib/jvm/java-6-openjdk-i386/bin/javadoc
javadoc.1.gz -> /usr/lib/jvm/java-6-openjdk-i386/man/man1/javadoc.1.gz
javah -> /usr/lib/jvm/java-6-openjdk-i386/bin/javah
javah.1.gz -> /usr/lib/jvm/java-6-openjdk-i386/man/man1/javah.1.gz
javap -> /usr/lib/jvm/java-6-openjdk-i386/bin/javap
javap.1.gz -> /usr/lib/jvm/java-6-openjdk-i386/man/man1/javap.1.gz
javaws -> /usr/lib/jvm/java-6-openjdk-i386/jre/bin/javaws
javaws.1.gz -> /usr/lib/jvm/java-6-openjdk-i386/jre/man/man1/javaws.1.gz

从字面上看,我不知道如何解决此错误消息。数据库存在。用户名和密码存在。我目前没有向数据库中添加任何表,但我认为这不是问题,因为毕竟我只是建立连接......

驱动安装在 /usr/share/java 下

-rw-r--r-- 1 root root   822524 10月 20  2011 mysql-connector-java-5.1.16.jar
-rw-r--r-- 1 root root   827942  9月  9 22:40 mysql-connector-java-5.1.21-bin.jar
lrwxrwxrwx 1 root root       35  9月  9 22:40 mysql-connector-java.jar -> mysql-connector-java-5.1.21-bin.jar
lrwxrwxrwx 1 root root       24 10月 20  2011 mysql.jar -> mysql-connector-java.jar

有谁知道如何解决它.. 感谢您的帮助!:)

4

2 回答 2

2

确保您的项目库中有 mysql 连接器驱动程序(即 jar 文件)。当没有合适的驱动程序时会出现此错误消息。

您可以从此站点下载 MySQL 连接器驱动程序。

于 2012-09-09T14:29:37.673 回答
1

我遇到了同样的问题,好奇的答案帮助我找到了一个新的解决方案。

注意:我使用的是 Maven。

所以我决定尝试这种依赖: http: //mvnrepository.com/artifact/mysql/mysql-connector-java

在我添加到pom.xml并运行mvn compile exec:java它之后。

于 2015-04-06T16:01:05.470 回答